2012-08-31 98 views
7

我有一个关于生成Java工件与wsimport工具(Maven的JAX-WS)问题的最佳实践代码 - 包装代码

当我生成WSDL的Java工件,我想收拾Web服务项目作为WAR文件,其客户端作为JAR文件。

何处放置生成的工件以及放置WSDL的位置? 关于组织Web服务项目的最佳做法是什么?

预先感谢您!

最好的问候, 尤里察Krizanic

回答

3

的文物将被要求在客户端和服务器端,以便收拾他们在第三个罐子,并将其设置为既依赖。 WSDL应该进入战争的WEB-INF文件夹,@WebService@WebServiceClient的属性wsdlLocation应该被设置为反映它的路径。

+0

由于为答案。你知道把WSDL放在war文件的什么位置吗?我有一些wsdl加载问题... –

+0

@JuricaKrizanic编辑我的答案。 – zeller

+0

由wsimport生成的代码是否与服务器端和客户端相同? –

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应用程序模块封装

...一个Web服务部署描述符位于一个WAR在 WEB-INF/webservices.xml和WSDL目录位于 WEB-INF/wsdl

对于客户:

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

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

请注意,此规范自身限制的Java EE客户端;这并不意味着您不能在显式提供WSDL的地方使用unmanaged client

交叉引用这些规格为更详细地: