Wir verwenden den "Start from Java" -Ansatz zum Erstellen von JAX-WS 2.0-Webdiensten mit dem Metro 1.5-Stack. Wenn wir ein Standardwerkzeug wie SoapUI auf einen unserer Webdienste verweisen, zeigt dies an, dass Parameter für WebMethods optional sind. Das generierte xsd zeigt minOccurs = 0 an.Wie kann ich einen WebMethod-Parameter erforderlich machen?
Ich brauche einen Weg, um WebMethod Parameter erforderlich zu machen (vielleicht minOccurs = 1 in der xsd) in der "Start von Java" -Ansatz. Ich würde denken, dass es eine Java Annotation dafür gibt, aber ich konnte keine finden. Die XmlElement-Annotation hat ein erforderliches Attribut, aber XmlElement kann nicht auf WebMethod-Parameter angewendet werden.
Gibt es eine Möglichkeit, meine WebMethod-Parameter erforderlich zu machen, ohne die xsd manuell zu bearbeiten und minOccurs auf 1 zu setzen?
Danke für die Kommentare und die Links. Ich wünsche diesen aufgeblähten Web-Services-Büchern da draußen (von denen ich einige gelesen habe - ich meine, durchwaten) hätte ich das genauso klar gesagt wie Sie. –
@Dean du bist willkommen. Und danke für das Feedback zu JAX-WS 2.2 (auch wenn das nicht wirklich im Rahmen der Ausgangsfrage lag). –
Ich würde sagen, dass WSDL-First gleichermaßen nicht funktioniert. Der Blog, den Sie verlinken, redet über die Verwendung komplexer Request- und Return-Objekte zum Wrapping, aber dies bringt eine Reihe von Problemen mit sich, wie zum Beispiel das Verstecken der benötigten Dinge in den zugrunde liegenden Feldern, Missbrauch der Wiederverwendung, etc ... Beispiel für etwas, das gut ist, Spring und Proxies zu benutzen, um etwas wie einen WebService als einfache Implementierung einer Schnittstelle lokal erscheinen zu lassen. Das Aufkleben Ihrer lokalen Schnittstelle auf diese Weise ist Teil dessen, was Sie davon abhält zu vergessen, dass es sich um einen Dienst handelt, der über JAX-WS verfügbar gemacht wird. – jcalvert