如何在JBoss 4.2.2中使用javax.jws.WebService.wsdlLocation? (这适用于部署为Web服务的EJB3 bean。)
有一些文档支持它,但格式究竟是什么?我试过一个http,我试过一个相对的URL。 JBoss如何在EJB的类路径中寻找它,一个URL,还有什么呢?
答案 0 :(得分:1)
您应该查看JBWS-2206及相关问题JBWS-1714和JBWS-1837。
根据我可以收集的信息,JBoss内部使用Metro(RI)作为JAX-WS。我对此并不十分肯定,但看起来Metro使用类加载器通过wsdllocation属性读取WSDL,从而使EJB JAR的META-INF / wsdl成为放置WSDL的安全选择。 The example file in JBWS-2206可以作为参考。
<强>更新强>
how to provide your own WSDL is present in the JBoss forums的全面概述。
更新#2
JAX-WS规范可以更好地了解为什么会出现这种情况。在 5.2.5.3 @WebService(wsdlLocation)和元数据的使用部分中,可以找到说明
的规范。端点实现类上的wsdlLocation注释元素的值,如果有的话,必须 是一个相对的URL。它指出的文件必须与应用程序一起打包。而且,它必须 遵循下面第5.2.5.4节(“应用程序指定的服务”)中的要求。
此外,它声明
JAX-WS实现必须修补所有wsdl:import和xsd:import的位置属性 本地文档中指向本地文档的声明。一个实现绝不能修补任何 其他位置属性。
定义生成的WSDL应该如何出现。