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.
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.
Tags und Links java cxf web-services wrapper response