在运行时,JAX-WS会获取SOAP端点的WSDL,即使它已经在IDE中运行了wsimport。此行为如下所示:http://jax-ws.java.net/faq/index.html#wsdl_at_runtime
在运行时,客户端可以检索的元数据数量是否有限制?如果是这样的话,有没有办法提高这个限制?
请注意,我指的不是在IDE中运行wsimport;这很好用。我特别讨论的是在运行时获取WSDL元数据。
发布于 2011-01-13 06:25:37
在这个问题上花了很多时间之后,我们想出了一个解决方案。我在Netbeans的Metro的Glassfish环境中工作。如果我们将WEB-INF复制到源包文件夹中,则一切正常。java运行时现在可以绑定到jaxws-catalog.xml文件中的相对路径。如果不复制该文件夹,它将无法工作。
发布于 2011-09-08 19:58:49
Metro/JAX-WS-ri在运行时需要WSDL。有关说明,请参阅http://jax-ws.java.net/faq/index.html#wsdl_at_runtime。
为了防止在运行时获取WSDL,您应该将其打包为资源,并在实例化代理工厂时提供它:
new XYZ_Service( XYZ_Service.class.getResource( "/path/to/your/XYZ.wsdl" ), new QName( "NameSpace", "ServiceName" ) );发布于 2010-12-13 23:50:41
根据您参考Metro FAQ的事实,您显然已经了解了为什么在运行时仍然需要WSDL副本的原因。重申一下常见问题,原因是能够支持没有对应Java注释的WS-*扩展。
目前在Metro中没有可能禁用对扩展的支持,因此没有办法在运行时绕过对WSDL的需求。
https://stackoverflow.com/questions/4315229
复制相似问题