【问题标题】:What might cause a inaccessiblewsdlexception?什么可能导致无法访问的wsdlexception?
【发布时间】:2011-05-19 01:22:04
【问题描述】:

我正在将一些 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 或其中的一部分?它找不到一些图书馆?它无法访问网络(wsdl 包含一些外部 xsd 的导入)?

【问题讨论】:

    标签: jax-ws livecycle


    【解决方案1】:

    这意味着 livecycle 8.0 没有使用或找不到 jax-ws-catalog.xml,因此 jaxws 运行时尝试从客户端存根中提到的文字位置加载 WSDL,即从 http://localhost/wsdl/SOAService.wsdl 而不是查看 jax-ws-catalog.xml 中提供的映射并使用应用程序 jar 中的 WSDL。

    线索是

    java.net.ConnectException:连接被拒绝 java.net.ConnectException:连接被拒绝

    这告诉我 jaxws 运行时正在尝试通过 http 访问 WSDL。

    您将 jax-ws-catalog.xml 放在哪里?除了 JAR 的 META-INF 目录之外,它可能是为了 livecycle 它需要放在其他地方。

    我认为您需要在 livecycle 论坛上发布此问题。

    由于不能从命令行运行,这有点奇怪,你究竟是如何从命令行运行它的。

    【讨论】:

    • 感谢您的提示,我认为这是由于 wsdl 的导入 xsds。没有足够的时间进行调查(像往常一样),我已经“解决”了使用axis2创建一个客户端,它不会在任何时候实例化代理时轮询wsdl。另一个提示可能是 LiveCycle 是一个在 jboss 上运行的企业应用程序,而我的 jar 在运行在 Tomcat 上的普通 Web 应用程序上运行良好。出于自己的好奇心,我会在 adobe 的论坛上发布问题。
    【解决方案2】:

    似乎它正在寻找证书文件,请查看是哪个证书。 下载该证书,重新启动您的服务器,然后尝试。

    问候, 斯里达尔·戈兰蒂

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-10
      • 2012-01-11
      • 2012-05-05
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多