什么可能导致无法访问的错误?

时间:2010-12-02 10:45:37

标签: jax-ws livecycle

我正在将一些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和测试类)。

在以下情况下不起作用:

  • 我从命令行或
  • 启动jar
  • 我将jar加载到livecycle 8.0进程(在jboss 4.0上运行)

在这两种情况下都会出现错误:“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的导入)?

2 个答案:

答案 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