代码之家  ›  专栏  ›  技术社区  ›  Rob Goodwin

从jboss ejb服务中调用Web服务时出现问题

  •  1
  • Rob Goodwin  · 技术社区  · 16 年前

    我在我们的内部网络上有一个简单的Web服务。我使用SOAPUI做了一点测试,从WSDL生成服务类,并编写了一些Java代码来访问服务。一切按预期进行,因为我能够创建服务代理类并进行调用。很简单的东西。唯一的速度颠簸是让Java信任来自提供Web服务的机器的证书。这不是技术问题,而是我缺乏使用基于SSL的Web服务的经验。 现在来谈谈我的问题。我编写了一个简单的EJB服务并将其部署到JBossApplicationServer4.3中,现在在以前工作的代码中得到了以下错误。

    12:21:50,235 WARN  [ServiceDelegateImpl] Cannot access wsdlURL: https://WS-Test/TestService/v2/TestService?wsdl
    

    我可以使用错误消息中的URL从与应用服务器运行在同一台计算机上的Web浏览器访问WSDL文件。我还可以在应用服务器所在的同一台计算机上(而不是从内部)运行在应用服务器外部访问WebService的代码。我不知道从这里到哪里去。我打开了jboss中的调试日志,只得到了上面显示的内容。我在网上做了一些搜索,在一些问题中发现了同样的错误,但是这些问题没有答案。使用wsimport-ant任务使用JAX-WS2.2生成并放置在EJB包中包含的JAR中的Web服务类。jboss部署在RHEL 5.4中。我把这个贴在 JBOSS community forum 但从这篇文章开始就没有任何回应。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    查看ServiceDelegateImpl,它尝试执行以下操作:

    inputstream is=wsdlurl.openstream();

    其中wsdlurl为非空 URL . 这意味着问题在于 openStream() . 我预计HTTPS根证书会有问题;我可以想象JBoss在某个地方有它自己的可接受根证书存储库,而您的根不在其中。

    我要做的测试是在HTTP服务器上部署服务,并使wsdlurl成为 http 网址。如果可以的话,它就是SSL层。

    如果它 在ssl层中,尝试通过在命令行上定义密钥库来手动添加密钥库,就像在 this SO question .