2012-08-31 4 views
7

Ich habe eine Frage in Bezug auf Erzeugung von Java-Artefakte mit wsimport Werkzeug (von Maven JAX-WS)-Code von wsimport erzeugt - Best Practice für die Verpackung, den Code

Wenn ich die Java-Artefakte aus WSDL generieren, würde ich packen gerne das Web-Service-Projekt als WAR-Datei und der Client als JAR-Datei.

Wohin mit den generierten Artefakten und wo die WSDL? Was ist die beste Vorgehensweise bei der Organisation von Web-Service-Projekten?

Vielen Dank im Voraus!

Mit freundlichen Grüßen, Jurica Krizanic

Antwort

3

Die Artefakte werden sowohl auf Client- und Serverseite benötigt werden, um sie in einem dritten Gefäß packen und es als eine Abhängigkeit für beide gesetzt. Die WSDLs sollten in den WEB-INF-Ordner des Kriegs gehen, und das wsdlLocation-Attribut von @WebService und @WebServiceClient sollte so eingestellt werden, dass es den Pfad zu ihm widerspiegelt.

+0

Dank für die Antwort. Wissen Sie, wo Sie WSDL in eine WAR-Datei einfügen müssen? Ich habe einige WSDL-Ladeprobleme ... –

+0

@JuricaKrizanic Bearbeitete meine Antwort. – zeller

+0

Wird der von wsimport generierte Code derselbe, der auf die Serverseite und die Clientseite geht? –

1

Die Verpackungsoptionen für Managed Services sind in JSR 109: Web Services for Java EE, Version 1.3 definiert.

Für Dienstleistungen:

5.4.2 EJB Modul Verpackung

... die Web-Services-Deployment Descriptor Stelle innerhalb der EJB-JAR-Datei ist META-INF/webservices.xml. Das Verzeichnis wsdl befindet sich unter META-INF/wsdl.

5.4.3 Web App Modul Verpackung

... eine Web-Services-Deployment Descriptor in einem WAR befindet sich an WEB-INF/webservices.xml und die WSDL-Datei-Verzeichnis auf WEB-INF/wsdl entfernt.

Für Kunden: Java EE-Anwendung Client, Web-Komponente, EJB-Komponente oder einen anderen Web-Service:

Ein Client kann eine der folgenden sein.

Der Speicherort des Implementierungsdeskriptors für den Webdienstclient im Modul ist modulspezifisch. WSDL-Dateien befinden sich relativ zum Stamm des Moduls und befinden sich in der Regel im Verzeichnis wsdl, das zusammen mit dem Deployment-Deskriptor des Moduls oder einem Unterverzeichnis von ist.

Beachten Sie, dass diese Spezifikation sich auf Java EE-Clients beschränkt; Es bedeutet nicht, dass Sie keine unmanaged client haben können, wo Sie die WSDL explizit bereitstellen.

Querverweis diese Spezifikationen für weitere Einzelheiten:

Verwandte Themen