2010-10-18 3 views
5

J'ai un fichier WSDL (le service web a été écrit par .NET) et je peux générer les classes et les codes de proxy du client de service web java dans IntelliJ IDEA 7.0.4 par son outil. le service Web a un en-tête de demande de savon, mais je ne peux pas voir de propriété ou de méthode dans les classes et les codes de proxy Java générés automatiquement pour définir l'en-tête de demande. (mais lorsque j'utilise Visual Studio 2008 pour générer les classes de proxy pour C#, un objet est créé dans la classe de proxy web-service comme en-tête, donc je peux le remplir simplement)Comment envoyer l'en-tête de requête SOAP en Java?

Que devrais-je faire en Java?

+0

Vérifier: http://stackoverflow.com/questions/3925272/handler-to-add-http-headers-to-http-request-not-invoked-when-using-axis-client-ap/3981045#3981045 – madhurtanwani

Répondre

1

Je ne suis pas sûr de ce que IntelliJ utilise pour générer des classes proxy. AXIS peut-être?

Je ne que si vous voulez faire avec CXF, lorsque vous définissez votre client, la meilleure façon est de créer une classe qui mettent en œuvre SoapInterceptor puis le définir comme un intercepteur sortant.

public void handleMessage(SoapMessage message) throws Fault { 
      message.getHeaders().add(QName.valueOf("foo"), "bar"); 
    } 

En fin de compte, il va être difficile pour vous de trouver la bonne façon de gérer cela si vous ne connaissez pas la bibliothèque de votre IDE utilise.

+0

Intellij utilise axis et axis2 si vous en avez. –

1

Toutes les classes d'un client de service Web complet peuvent être créées par l'outil wsimport inclus dans jdk.

http://download.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

Il vous suffit de spécifier l'adresse wsdl.

+0

Juste un truc, pour ajouter les en-têtes en utilisant 'wsimport' vous devez passer un paramètre supplémentaire dans la ligne de commande' -XadditionalHeaders'. J'ai eu cette information sur les commentaires de cette [cette question] (http://stackoverflow.com/questions/7257539/wsimport-doesnt-generate-code-related-to-soap-headers) –

Questions connexes