2010-12-21 8 views
4

Ich möchte Spring ws verwenden, um den Webservice-Client zu erstellen. Ich habe einige Unterlagen gesehen. In allen mit jaxb Marshalling und Unmarshalling. Aber zu Beginn der Notwendigkeit, Java-Klassen von xsd zu erstellen. Ich habe versucht, das elcipse-Plugin dafür herunterzuladen. Der Standort in java.net zeigt nichts zum Herunterladen an. Sourceforce net zeigt den Link zum Download an. Aber dieses Plugin funktioniert nicht. Ich habe versucht wsimport, aber es erzeugt nur .classes?Ist es erforderlich, Java-Klassen zu generieren, um spring-ws-Client zu verwenden

Meine Frage ist, wenn ich Frühling ws verwenden möchte, ist es erforderlich, .java Klassen zu generieren? Wenn ja, wo finde ich das elipse plugin oder wie kann ich die Klassen generieren? Gibt es noch eine andere Möglichkeit, ohne diese Klassen zu generieren?

Wenn Sie Jboss, verwenden Sie wsconsume.bat diese Klassen

Antwort

4

Frühlings-WS können Sie mit mehreren verschiedenen Darstellungen der Nachricht Nutzlasten arbeiten zu erzeugen, ist JAXB nur einer von ihnen. Sie können auch (zum Beispiel) rohe DOM-Objekte verwenden, wenn Sie dies wünschen, oder einige andere Optionen.

Wenn Sie bereits eine WSDL haben, dann wsimport sollte so den Job schön, es erzeugt .class Dateien für Ihr Schema. Sie brauchen nicht die .java Dateien auch streng genommen, können Sie ohne sie gut entwickeln, und Spring-WS hat keinen Nutzen für sie. Es ist einfacher, wenn Sie sie haben, und wsimport hat -keepgenerated Flag (oder etwas ähnliches), das stoppt es die .java Dateien zu löschen, sobald es fertig ist.

+0

Ja. Verwenden Sie die Option -keep mit wsimport, der auch .java-Dateien generiert. Vielen Dank. Darf ich wissen, was die anderen Möglichkeiten sind, Feder-ws und besten Weg zu verwenden. Hier möchte ich nicht mit rohen xmls umgehen. – vishnu

+1

@vishnu: JAXB ist meiner Meinung nach die beste Option. Wenn wenn für Sie arbeitet, bleiben Sie dabei. – skaffman

+0

Vielen Dank. Ich benutze JAXB und jboss server Ich bekomme Klassenladeprobleme wie java.lang.IllegalArgumentException: Class [org.apache.xbean.spring.context.v2.XBeanNamespaceHandler] implementiert die NamespaceHandler-Schnittstelle nicht während der Ausführung dieses Clients. Kann ich separate Fragen posten oder in diesen Fragen selbst bearbeiten? – vishnu

Verwandte Themen