我想在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>
正如我所说,甚至可能不支持此用法。我会很感激任何指示。
感谢。
答案 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()方法上放置断点。