4

我想在 Weblogic 上使用 JAX-WS 2.1 部署 Web 服务,其中 wsdl 导入模式,但我更愿意将它放在另一个位置,而不是与 wsdl 一起,最好从类路径加载它。

我希望我可以使用 jax-ws-catalog.xml 来映射它,但我似乎无法让 Weblogic 在部署应用程序时将其拾取,然后在找不到 xsd 时失败。

也许我想做的事情是不可能的,并且目录映射仅用于 Web 服务客户端,我还没有找到任何明确的文档。

wsdl 中的导入如下所示:

 <xs:import namespace="com.xyz.common/1.0"
schemaLocation="com.xyz.Common.1.0.xsd" />

放在 WEB-INF 文件夹中的 jax-ws-catalog.xml 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
    prefer="system">
    <system systemId="com.xyz.Common.1.0.xsd" 
            uri="classpath:com.xyz.Common.1.0.xsd" />
</catalog>

正如我所说,甚至可能不支持这种用法。我将不胜感激任何指示。

谢谢。

4

1 回答 1

1

我认为如果您通过(即通过等)jax-ws-catalog.xml发布端点,则支持JAX-WS。查看 JAX-WS 源代码,我发现如果使用/ ,则支持目录(也许本文会给您更多信息)。sun-jaxws.xmlcom.sun.xml.ws.transport.http.servlet.WSServletContextListenerW3CEndpointReferenceBuilderProvider.createW3CEndpointReference()

我建议你做的是在调试模式下启动 Weblogic AS,并在 class 的两个公共静态 parse() 方法上放置断点com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser

于 2011-01-27T19:11:14.237 回答