2010-10-18 5 views
5

Ich habe eine WSDL-Datei (der Web-Service hat von .NET geschrieben) und ich kann die Java-Web-Service-Client-Proxy-Klassen und -Codes in IntelliJ IDEA 7.0.4 von seinem Tool generieren. Der Web-Service hat einen Soap-Request-Header, aber ich kann keine Eigenschaft oder Methode in automatisch generierten Java-Proxy-Klassen und -Codes sehen, um den Request-Header zu setzen. (aber wenn ich Visual Studio 2008 verwenden, um die Proxy-Klassen für C# zu generieren, wird ein Objekt in Web-Service-Proxy-Klasse als Header erstellt, so kann ich einfach füllen)Wie SOAP-Anfrage-Header in Java senden?

Was soll ich in Java tun?

+0

Überprüfen Sie: http://stackoverflow.com/questions/3925272/handler-to-add-http-headers-to-http-request-not-invoked-when-using-axis-client-ap/3981045#3981045 – madhurtanwani

Antwort

1

Ich bin mir nicht sicher, was IntelliJ verwendet, um Proxy-Klassen zu generieren. AXIS vielleicht?

ich tun wissen, dass, wenn Sie dies mit CXF tun möchten, wenn Sie Ihren Kunden definieren, der beste Weg, um eine Klasse zu erstellen, die SoapInterceptor implementieren und es dann als Outbound Interceptor gesetzt.

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

Letztlich aber ist es schwer sein wird für Sie den richtigen Weg, um herauszufinden, diese zu umgehen, wenn Sie nicht wissen, die Bibliothek IDE verwendet.

+0

Intellij verwendet Achse und Achse2, wenn Sie verfügbar sind. –

1

Alle Klassen für einen vollständigen Web-Service-Client können mit dem in jdk enthaltenen Tool wsimport erstellt werden.

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

Sie müssen nur die wsdl-Adresse angeben.

+0

Nur ein Trick, um die Header mit 'wsimport' hinzuzufügen, müssen Sie einen zusätzlichen Parameter in der Kommandozeile' -XadditionalHeaders' übergeben. Ich habe diese Informationen über die Kommentare dieser [diese Frage] (http://stackoverflow.com/questions/7257539/wsimport-doesnt-generate-code-related-to-soap-headers) –