我有一个关于使用wsimport工具生成Java工件的问题(由Maven Jax-WS提供)
当我从WSDL生成Java工件时,我想将Web服务项目打包为WAR文件,将其客户端打包为JAR文件。
在哪里放置生成的工件以及放置WSDL的位置? 有关组织Web服务项目的最佳实践是什么?
提前谢谢!
祝你好运, Jurica Krizanic
答案 0 :(得分:3)
客户端和服务器端都需要工件,因此将它们打包到第三个jar中并将其设置为两者的依赖关系。 WSDL应该转到战争的WEB-INF文件夹,并且wsdlLocation
和@WebService
的{{1}}属性应该设置为反映它的路径。
答案 1 :(得分: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的unmanaged client。
交叉引用这些规范以获取更多详细信息: