使用jax-ws-catalog.xml解析wsdl中导入的xsd:s

时间:2010-11-03 13:27:44

标签: web-services xsd weblogic jax-ws catalog

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

我希望我可以使用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>

正如我所说,甚至可能不支持此用法。我会很感激任何指示。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为如果您通过sun-jaxws.xml发布终端(即通过jax-ws-catalog.xml等),则支持JAX-WS com.sun.xml.ws.transport.http.servlet.WSServletContextListener。查看JAX-WS源代码,如果使用W3CEndpointReferenceBuilder / Provider.createW3CEndpointReference()(我可能会this article提供更多信息),我会看到该目录受支持。

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