9
votes

Hangler pour ajouter des en-têtes HTTP à la demande HTTP non invoquée lors de l'utilisation d'Axis Client API

J'utilise l'API d'axe pour accéder au serveur HTTP Axis. La documentation de l'API peut être trouvée ici .

Je suis Utilisation du code suivant pour ajouter des gestionnaires au serveur. service est de type java.xml.rpc.service xxx

Je sais que le nom du service est correct car je reçois la sortie correcte dans la suite suivante Appels à l'objet de service.

d'une manière ou d'une autre, le gestionnaire n'est pas invoqué. Voici la classe de manutention. Mon intention est de Ajouter des en-têtes personnalisés à la requête HTTP avant de transférer la demande au serveur. xxx

Quel est le problème avec le code ci-dessus? < / p>

y a-t-il d'autre moyen de modifier les en-têtes HTTP à l'aide d'APACHE AXIS API?


0 commentaires

3 Réponses :


0
votes

Nous ajoutons des en-têtes personnalisés à une demande de savon. Cependant, nous l'avons mis en œuvre en injectant les en-têtes dans l'objet Stub de l'axe pour le WebService au moment de l'exécution. Ainsi, ils ne changent pas pour chaque demande, mais les en-têtes injectés sont utilisés pour toute la course de nos cas de test

Si vous pensez que c'est votre cas d'utilisation aussi, je peux trouver ce code et mettre à jour avec ce que nous avons fait.


5 commentaires

J'ai besoin d'ajouter des en-têtes HTTP et non des en-têtes de savon.


DÉSOLÉ :( faq.javaranch.com/java/webserviceshowto#http-headers


Essayer d'appeler la fonction SetProperty sur l'objet Stub. Ça ne marche pas. Pouvez-vous s'il vous plaît me donner l'extrait de code que vous utilisez? Merci


quoi? Le lien que j'ai collé a des étapes pour Axis et Jax-RPC - décidez ce que vous voulez faire? La méthode axe n'appelle pas _seproperty ();


Quant à l'extrait de code, veuillez lire la dernière réponse que j'ai donnée :(



1
votes

BTW lecture sur l'utilisation des gestionnaires, j'ai trouvé cette page. Voir si elle aide: http://soa.sys-con.com/node/39721


1 commentaires

J'ai un sentiment, avec tous les Qnames et des trucs, que le handlerconfig est de gérer les en-têtes de savon.



8
votes

Okie. Cela devrait faire l'astuce:

1 - Créez un fichier WSDD (Say /tmp/test.wsdd code>) contenant ceci: p> xxx pré>

2 - Assurez-vous que tous les libs de l'axe sont dans votre chemin de classe, puis exécutez: p> xxx pré>

3 - étape 2 générera un client-config.wsdd. Copiez ceci sur votre projet et assurez-vous qu'il sera dans le chemin de classe lorsque le projet est exécuté. P>

4 - Tous les appels WebService (via HTTP Transport) se dérouleront via la classe TestHandler1 P>

Voici ma classe TestHandler1 (une légère modification de votre gestionnaire pour accéder aux en-têtes MIME): P>

- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
init called
init called
invoke called
=----------------------------------=
Headers : 
 org.apache.axis.message.MimeHeaders@761eec35
.
.
.


1 commentaires

Cela fonctionne pour moi. Il y avait un problème avec mon client-config.wsdd. Heureusement, cet outil génère le bon fichier.