Webservice mit CXF: Wie benutze ich den ResponseWrapper?

9

Wir erstellen einen Webservice (CXF-basiert), der von einer Java-Klasse (Java2WS) mit der folgenden Methode gesteuert wird:

%Vor%

Ich benutze die Wrapper, um die Elemente der Anfrage zu definieren. Antwort genauer: die richtigen Elementnamen (die mit einem Großbuchstaben beginnen), erforderliche und optionale Elemente, ...). Aber ich bin mir nicht sicher, ob dies der richtige Weg ist (es gibt keine ausführliche Dokumentation über Wrapper, oder?)

Die Klasse MyResponse:

%Vor%

Die Klasse MyReponseWrapper

%Vor%

Momentan verstehe ich die Wrapper nicht. Wie werden die Daten von MyResponse in MyResponseWrapper bzw. in den SOAP-Text der Antwort eingefügt, wenn ich eine Instanz von MyReponse zurückgebe?

Durch Testen dieses Webservice kann ich feststellen, dass eine Instanz von MyResponseWrapper instanziiert ist und der SOAP-Body die richtigen Elemente enthält, aber mit Standarddaten (zum Beispiel: result="fu" anstelle von "Hello"). Ich habe erwartet, dass CXF Matching-Daten von MyResponse zu MyResponseWrapper injiziert. Ist das falsch?

Wenn dies der falsche Weg ist: Wat ist der richtige Weg, um den resultierenden SOAP xml anzugeben, wenn Sie Java2WS ​​verwenden?

Übrigens: Die obigen Source Snippets sind nur Beispiele aus unseren komplexeren (mehr Felder) Klassen.

    
Bert Speckels 20.11.2010, 08:57
quelle

1 Antwort

-1

Das ist der richtige Weg. Die Anforderungs- und Antwort-Wrapper ermöglichen nur das Überschreiben des XML-Namespaces und der Element- / Attributnamen für die Anforderungs- / Antwortelemente. respektive - die wiederum auf die Methoden zur Verwaltung dieser Werte abbilden.

Siehe auch: Ссылка

  

Die Annotation @RequestWrapper wird von der   javax.xml.ws.RequestWrapper-Schnittstelle. Es wird auf die Methoden in platziert   die SEI. Wie der Name schon sagt, gibt @RequestWrapper die Java-Klasse an   das implementiert die Wrapper-Bean für die Methodenparameter   in der Anforderungsnachricht enthalten, die in einem Remoteaufruf gesendet wird. Es ist   wird auch verwendet, um die Elementnamen und Namespaces anzugeben, die von   Laufzeit beim Marshalling und Unmarshalling der Anforderungsnachrichten.

     

Die folgende Tabelle beschreibt die Eigenschaften von @RequestWrapper   Anmerkung.

     

lokalerName

     

Gibt den lokalen Namen des Wrapperelements im XML-Code an   Darstellung der Anforderungsnachricht Der Standardwert ist der Name   der Methode oder der Wert der Annotation @WebMethod   operationName -Eigenschaft.

     

targetNamespace

     

Gibt den Namespace an, unter dem sich das XML-Wrapper-Element befindet   definiert. Der Standardwert ist der Ziel-Namespace des SEI.

     

Klassenname

     

Gibt den vollständigen Namen der Java-Klasse an, die den Wrapper implementiert   Element.

    
Darrell Teague 12.09.2013 19:10
quelle