7

我有一个关于使用 wsimport 工具生成 Java 工件的问题(由 Maven Jax-WS 提供)

当我从 WSDL 生成 Java 工件时,我想将 Web 服务项目打包为 WAR 文件,并将其客户端打包为 JAR 文件。

将生成的工件放在哪里以及将 WSDL 放在哪里?组织 Web 服务项目的最佳实践是什么?

先感谢您!

最好的问候, Jurica Krizanic

4

2 回答 2

3

客户端和服务器端都需要这些工件,因此将它们打包在第三个 jar 中并将其设置为两者的依赖项。WSDL 应该转到 war 的 WEB-INF 文件夹,并且应该设置和 的wsdlLocation属性以反映它的路径。@WebService@WebServiceClient

于 2012-08-31T19:05:14.877 回答
1

JSR 109: Web Services for Java EE, Version 1.3中定义了托管服务的打包选项。

对于服务:

5.4.2 EJB 模块封装

...EJB-JAR 文件中的 Web 服务部署描述符位置是META-INF/webservices.xml. wsdl 目录位于 META-INF/wsdl.

5.4.3 Web App模块打包

...Web 服务部署描述符位于 WAR 中 WEB-INF/webservices.xml,wsdl 目录位于 WEB-INF/wsdl.

对于客户:

客户端可以是以下任何一种:Java EE 应用程序客户端、Web 组件、EJB 组件或其他 Web 服务。

Web 服务客户端部署描述符在模块中的位置是特定于模块的。WSDL 文件相对于模块的根目录定位,并且通常位于wsdl与模块部署描述符位于同一位置的目录或其子目录中。

请注意,此规范仅限于 Java EE 客户端;这并不意味着您不能在其中显式提供 WSDL的非托管客户端。

交叉参考这些规范以获取更多详细信息:

于 2012-09-03T10:49:54.257 回答