打包代码的最佳实践
我有一个关于使用wsimport工具生成Java工件的问题(由Maven Jax-WS提供)
当我从WSDL生成Java构件时,我想将Web服务项目打包为WAR文件,并将其客户端打包为JAR文件。
何处放置生成的工件以及放置WSDL的位置? 关于组织Web服务项目的最佳做法是什么?
先谢谢你!
最好的问候,Jurica Krizanic
这些工件将在客户端和服务器端都需要,因此将它们打包在第三个jar文件中,并将其设置为两者的依赖关系。 WSDL应该转到war的WEB-INF文件夹,并且应该设置@WebService
和@WebServiceClient
的wsdlLocation
属性以反映它的路径。
托管服务的打包选项在JSR 109:用于Java EE的Web服务1.3版中定义。
对于服务:
5.4.2 EJB模块封装
... EJB-JAR文件中的Web服务部署描述符位置是META-INF/webservices.xml
。 wsdl目录位于META-INF/wsdl
。
5.4.3 Web App模块打包
... Web服务部署描述符位于WEB-INF/webservices.xml
的WAR中,而wsdl目录位于WEB-INF/wsdl
。
对于客户:
客户端可以是以下任何一种:Java EE应用程序客户端,Web组件,EJB组件或其他Web服务。
Web服务客户端部署描述符在模块中的位置是特定于模块的。 WSDL文件位于相对于模块根目录的位置,通常位于与模块部署描述符或其子目录位于同一位置的wsdl
目录中。
请注意,此规范将自身限制于Java EE客户端; 这并不意味着您不能在明确提供WSDL的位置拥有非托管客户端。
交叉引用这些规范以获取更多详细信息: