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!
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!
Am einfachsten ist es wahrscheinlich, nur eine Anmerkung an die Schnittstelle von:
zu kleben %Vor%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 ....
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.
Tags und Links configuration java jax-ws cxf