由wsimport生成的代码 - 打包代码的最佳实践

时间:2012-08-31 18:54:53

标签: java maven wsdl jax-ws

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

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

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

提前谢谢!

祝你好运, Jurica Krizanic

2 个答案:

答案 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

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