我正在将一些Web服务客户端更新为一些旧的Java应用程序,以调用axis2第三方Web服务。我已经获得了一个wsdl文件,所以我开发了一个包含该服务客户端的jar,如下面(我的)帖子所述:JAX-WS client : what's the correct path to access the local WSDL?。
它适用于某些应用程序,但不适用于在实例化代理类时抛出inaccessibleWSDLException
的其他应用程序。
下面我发布了我的jax-ws-catalog文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
<system systemId="http://localhost/wsdl/SOAService.wsdl" uri="wsdl/SOAService.wsdl"/>
<system systemId="http://schemas.xmlsoap.org/soap/encoding/" uri="wsdl/schemas.xmlsoap.org/soap/encoding.xsd"/>
<system systemId="http://www.w3.org/2005/05/xmlmime" uri="wsdl/www.w3.org/2005/05/xmlmime.xsd"/>
</catalog>
它总是在我的开发环境中工作(netbeans \ ecplise取决于我正在更新的项目)和服务器(tomcat \ Jboss 4 \ jar和测试类)。
在以下情况下不起作用:
在这两种情况下都会出现错误:“InaccessibleWSDLException”,特别是在生命周期中我收到以下错误:
2010-12-01 12:20:47,420 ERROR [com.adobe.workflow.AWS] stalling action-instance: 9989 with message: com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
java.net.ConnectException: Connection refused
java.net.ConnectException: Connection refused
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:172)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:144)
at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254)
at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:217)
at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:174)
at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
at javax.xml.ws.Service.<init>(Service.java:56)
at com.ibm.eci.soaservice.SOAService.<init>(SOAService.java:50)
这个例外是什么意思?它找不到wsdl还是一块呢?它找不到一些图书馆?它无法访问Web(wsdl包含一些外部xsd的导入)?
答案 0 :(得分:6)
这意味着livecycle 8.0没有使用或没有找到jax-ws-catalog.xml,所以jaxws运行时试图从客户端存根中提到的文字位置加载WSDL,即从 http://localhost/wsdl/SOAService.wsdl而不是查看jax-ws-catalog.xml中提供的映射并使用应用程序jar中的WSDL。
线索是
java.net.ConnectException:Connection refused java.net.ConnectException:Connection refused
告诉我jaxws运行时试图通过http访问WSDL。
你把jax-ws-catalog.xml放在哪里?除了JAR的META-INF目录之外,它可能适用于生命周期,需要放在其他地方。
我认为你需要在livecycle forums上发布这个问题。
对于不在命令行中工作,这有点奇怪,你究竟是如何从命令行运行的。
答案 1 :(得分:0)
似乎在查找证书文件,请查看该证书。 下载该证书,重新启动服务器,然后尝试。
此致 Sridhar Goranti