CXF So legen Sie SoapVersion am CXF-Port ohne Spring fest

7

Ich arbeite derzeit an einem Web-Service-Client, der CXF ohne Spring-Konfigurationsdateien verwendet.

Es funktioniert ziemlich gut, aber ich kann nicht herausfinden, wie man die bindende SoapVersion mit Java Api setzt. Mit einer Spring-Datei geschieht dies wie folgt:

%Vor%

Weißt du, wie man das im Java-Code macht (am Port, am SOAPBinding ...)?

Vielen Dank im Voraus für Ihre Hilfe!

BEARBEITEN ----------------------

Ich bin immer noch mit diesem Problem fest ... Ich habe versucht, die SOAPBinding Annotation auf der Schnittstelle hinzuzufügen, wie in einer der Antworten unten vorgeschlagen, aber es hat nicht funktioniert ... Ich bin immer noch auf der Suche nach einer Möglichkeit, meinen PortType / Binding / Bus manuell zu konfigurieren, um Soap 1.2 zu verwenden ...

Irgendwelche Ideen?

BEARBEITEN ----------------------

Problem gelöst! Eigentlich habe ich meine eigene Frage beantwortet: siehe unten ...

Danke!

    
reef 22.11.2010, 17:11
quelle

5 Antworten

13

Ok, ich antworte wieder auf meine eigene Frage, um die Lösung zu teilen. Mit Hilfe der Jungs von der CXF Mailingliste habe ich eine Lösung gefunden, die für mich funktioniert. Es gibt zwei Möglichkeiten, das Problem zu lösen. Hier ist die Erklärung:

Das Problem kam von der Art, wie ich meinen CXF-Dienst erstellte.

Die erste Lösung besteht darin, den WSDL-Speicherort zum Zeitpunkt der Erstellung des Dienstes anzugeben:

%Vor%

Dies löste das Problem, aber ich wollte diese Verbindung nicht mit der WSDL haben, also ist hier die zweite Lösung, die diese Verbindung löscht:

%Vor%

In meinem Projekt haben wir uns für die zweite Lösung entschieden.

Hoffe, das hilft!

    
reef 24.01.2011, 09:55
quelle
6

Am einfachsten ist es wahrscheinlich, nur eine Anmerkung an die Schnittstelle von:

zu kleben %Vor%     
Daniel Kulp 22.11.2010 17:20
quelle
1

Wenn Sie den cxf-Client verwenden, können Sie den folgenden Weg verwenden. Es kann auch mehr als eine WSDL binden.

%Vor%     
theMind 13.10.2016 07:08
quelle
0

Wie von Donal Fellows vorgeschlagen, beantworte ich meine eigene Frage;)

Tatsächlich wurde das Problem mit der Soap-Version verknüpft, die der Server verarbeiten kann. Auf der Clientseite muss ich nicht angeben, dass ich Soap 1.2 verwenden möchte. Es scheint ausreichend zu sein, dass der PortType in der WSDL-Datei auf Soap 1.2 konfiguriert ist. Aber auf der Serverseite muss ich explizit sagen, welche Soap-Version ich möchte. Auf der Serverseite benutze ich immer noch den "Spring-Modus" für die CXF-Konfiguration, daher habe ich in der XML-Konfigurationsdatei Folgendes hinzugefügt:

%Vor%

Das ist alles Leute! Danke für deine Zeit und Hilfe!

BEARBEITEN --------------------------------

Tatsächlich funktioniert diese Lösung nicht, jetzt wo wir einen Server kontaktieren, den wir nicht verwalten .... Wir sind immer noch mit unserem Problem hier fest ....

    
reef 25.11.2010 16:20
quelle
0

Alter Thread. Ich dachte, ich würde eine Lösung posten, die für mich funktioniert hat. In der Datei cxf-beans.xml habe ich endpointName="tns:MR_ServerSoap12" von endpointName="tns:MR_ServerSoap" geändert. Beachten Sie, dass der Endpunktname in Ihrer WSDL einen eigenen Namen hat. Verwenden Sie diesen Namen.

    
Jim Smith 26.04.2016 18:15
quelle

Tags und Links