Apache Camel multipart HTTP post (téléchargement de fichier)
Comment puis-je faire plusieurs parties de téléchargement de fichiers à l'aide de l'Apache Camel HTTP composant ?
OriginalL'auteur Kai Sternad | 2010-03-10
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas est-il possible d'envoyer plusieurs parties des formulaires en utilisant le HTTP composant.
Si vous avez besoin de la solution de contournement, vous pouvez créer des POJO Printemps Bean qui utilise le Client Http Apache (et ses
MultipartPostMethod
). Ensuite, vous pouvez acheminer votre message pour que bean:pouvez-vous expliquer comment vous l'avez fait dans le détail?
Je suis désolé, malheureusement je ne me souviens pas des détails. Il a été un moment.
est-il une solution qui fonctionne?
OriginalL'auteur Henryk Konsek
Aussi longtemps que votre corps du message est en multipart/form-data format, vous pouvez utiliser le Chameau http composant le POSTER sur un autre serveur. Le truc, c'est de définir votre Type de Contenu correctement et de définir la méthode de la requête POST:
Évidemment, l'exemple du corps au-dessus n'est pas très utile parce que c'est toutes les données statiques. Il y a un certain nombre de façons que vous pouvez construire le corps, j'ai utilisé XSLT de la sortie en mode texte, à l'aide d'un script d'expression (par exemple <groovy>...</groovy>), et un Ressort de haricot. XSLT fonctionne bien lors de la réception de vos corps du message est déjà un document XML:
Vous ne devez être prudent sur les espaces superflus, cependant. Espérons que cette aide!
OriginalL'auteur pegli
J'ai eu à travailler sur un projet web en fonctionnalités ci-dessous:
Formulaire de connexion: les gens de connexion et peut télécharger le fichier; (Chameau: la Jetée, Http, JDBC)
Formulaire d'Upload; chargement de la servlet: si les gens peuvent se connecter; pouvez télécharger fichier xml sur un ftp ou un serveur web; (Chameau: fichier)
3.Dossier est validé par mon .fichier xsd; (Chameau: Validator)
J'ai été créer le projet web par mon IDE favori (IntelliJ IDEA par Jetbrains);
Je décris partie de mon scénario avec le code source et j'espère que cela est utile ☺
1) index.html
Vous devez d'abord créer une base de données et de connexion de la table; puis ajouter les données de l'échantillon;
par exemple, ajouter ces fichiers:
2) le schéma.sql
3) test de données.sql
4) config spring-context.xml
Ensuite, vous pouvez utiliser des bases de données comme le derby, H2, mysql ou autres. Ajouter en dessous de la configuration de votre ressort fichier de config:
5) camel-context.xml
Maintenant, vous pouvez exécuter votre projet; avant de faire cela, vous devez ajouter cette route à votre chameau contexte:
Lorsque vous exécutez le projet; index.html la page est affichée et vous pouvez mettre le nom d'utilisateur et le mot de passe des boîtes de texte et envoyer votre formulaire d'inscription.
Effectivement Chameau était à l'écoute de cette jetée du port et obtenu votre post de l'information.
Vous pouvez obtenir ces informations à dos de Chameau, en-tête comme '${en.l'en-tête.l'utilisateur}'.
Comme vous pouvez le voir, j'ai mis ma requête sélection en Chameau du Corps, Donc le sélectionner résultat est également stocker en Chameau du Corps.
Je veux lire mon résultat et a obtenu la prise de certaines décisions, pour cette raison, j'ai ajouter Chameau processeur comme ci-dessous:
6) LoginProcessor.java
}
Dans LoginProcessor j'ai vérifié le corps et si l'entrée de nom d'utilisateur et mot de passe sont valides; Ajouter du Chameau en-tête de la propriété et nommé par ‘nom’ par le nom de champ de la table. Sinon, définissez la valeur null dans la Chamelle en-tête de la propriété.
Dos de Chameau contexte fichier xml et de poursuivre la route.
Si la Chamelle d'en-tête est nulle; rediriger l'utilisateur vers fail.html page; sinon rediriger vers la page que obtenir le fichier de l'utilisateur(file.html).
Remarque: bridgeEndpoint propriété
Vous définissez le point de terminaison http pour être bridgeEndpoint qui signifie que l'url de la requête sera mis à jour avec l'URI de la requête.
OriginalL'auteur Aliti
- T-il à l'aide de Chameau?
Apache Fileupload n'est ce tout simplement http://commons.apache.org/fileupload/using.html
OriginalL'auteur JoseK
Pourriez-vous veuillez donner plus de détails, comment voulez-vous multipart formulaire d'atteindre apache camel?
Devrait-il être une forme sur une page web envoyer directement à Chameau route? Ou AMQ file d'attente?
Je vous suggère de vérifier HTTP Apache et Apache Jetty composants.
OriginalL'auteur Archer