gpt4 book ai didi

java - 有没有人得到 jax-ws-catalog.xml 来在 Metro 上本地解析 schemaLocation?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:30 25 4
gpt4 key购买 nike

我已将 jax-ws-catalog.xml 添加到我的 .war 文件中,以便在本地而不是在 .war 中远程解析 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 目录工具)。 (如果有帮助,我可以发布我的 jax-ws-catalog.xml 的内容以及相关的 xsd 和 wsdl。

Google 搜索发现许多其他问题,jax-ws-catalog.xml 在 Metro 堆栈中不起作用。

有没有人得到 jax-ws-catalog.xml 在 Metro 中工作?

最佳答案

您将 jax-ws-catalog.xml 和 WSDL 文件放在哪里?

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

如果您从 WAR 中访问外部 Web 服务,那么您的 jax-ws-catalog.xml 需要进入 app.war/WEB-INF/classes/META-INF 目录,或者,如果您在应用程序中部署了契约(Contract)优先 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 注释的契约(Contract)第一个 WS 端点 app.war/META-INF

如果您想同时执行这两项操作,即发布(首先是契约(Contract))以及使用 Web 服务,那么您需要将 jax-ws-catalog.xml + WSDL 放在这两个位置,即 app.jar/WEB-INF/classes/META-INF 和 app.jar/META-INF

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

关于java - 有没有人得到 jax-ws-catalog.xml 来在 Metro 上本地解析 schemaLocation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com