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

Web services 使用jax-ws-catalog.xml解析wsdl中导入的xsd:s,web-services,xsd,weblogic,jax-ws,catalog,Web Services,Xsd,Weblogic,Jax Ws,Catalog,我希望在Weblogic上使用JAX-WS2.1部署一个Web服务,其中wsdl导入一个模式,但我更希望将它放在另一个位置,而不是与wsdl一起,更希望它应该从类路径加载 我希望我可以使用jax-ws-catalog.xml来映射这一点,但我似乎无法让Weblogic在部署应用程序时使用它,而当找不到xsd时,应用程序就会失败 也许我想做的是不可能的,而且目录映射只用于Web服务客户端,我还没有找到任何关于这方面的清晰文档 wsdl中的导入如下所示: <xs:import namespa

我希望在Weblogic上使用JAX-WS2.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" />
<?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>

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

 <xs:import namespace="com.xyz.common/1.0"
schemaLocation="com.xyz.Common.1.0.xsd" />
<?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>

正如我所说,这种用法甚至可能不被支持。如果有任何建议,我将不胜感激


谢谢。

我认为如果您通过发布端点(即通过
com.sun.xml.WS.transport.http.servlet.WSServletContextListener
等),那么JAX-WS
JAX-WS
是受支持的。查看JAX-WS源代码,我发现如果使用
W3CEndpointReferenceBuilder
/
Provider.createW3CEndpointReference()
,则目录是受支持的(可能会提供更多信息)

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