java – 有没有人在Metro上本地解析schemaLocation的jax-ws-catalog.xml?

前端之家收集整理的这篇文章主要介绍了java – 有没有人在Metro上本地解析schemaLocation的jax-ws-catalog.xml?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的.war文件添加了一个jax-ws-catalog.xml,以便在本地而不是远程解析schemaLocation.我跟着这个例子

Metro User Guide: 2.10. Developing client application with locally packaged WSDL

当我部署.war并使用soapUI来验证Web服务时,它会卡住尝试访问schemaLocation http:// somehost:8080 / CMDB / schemas / common / 1.0 / CMDBCommonTypes.xsd

架构和wsdl都在Eclipse中验证(使用Eclipse的XML Catalog工具). (如果有帮助的话,我可以发布我的jax-ws-catalog.xml和相关的xsd和wsdl的内容.

谷歌搜索发现了许多其他问题,jax-ws-catalog.xml无法在Metro堆栈中运行.

有没有人在Metro中使用jax-ws-catalog.xml?

解决方法

你在哪里放置jax-ws-catalog.xml和WSDL文件

您提到您正在使用WAR,但在WAR中,jax-ws-catalog.xml的位置取决于您是尝试将其作为WS客户端还是作为WS Endpoint发布者(服务器)进行访问.

如果您从WAR中访问外部Web服务,那么您的jax-ws-catalog.xml需要进入app.war / WEB-INF / classes / Meta-INF目录,
或者,如果您在应用程序中部署了合同第一个Web服务,并且具有@WSDLLocation批注,那么对于该WSDL,jax-ws在app.jar / Meta-INF中查找jax-ws-catalog.xml

因此对于客户端WSDL位置app.war / WEB-INF / classes / Meta-INF / jax-ws-catalog.xml
使用@WSDLLocation注释合同第一个WS端点app.war / Meta-INF

如果要同时执行这两个操作(即发布(合同优先)以及使用Web服务),则需要在两个位置放置jax-ws-catalog.xml WSDL,即app.jar / WEB-INF / classes / Meta -INF和app.jar / Meta-INF

我已经在我的许多项目中成功使用了上述方法,这些项目同时发布和使用Web服务,我可以保证它按预期工作.

猜你在找的Java相关文章