gpt4 book ai didi

java - 从 JBOSS EJB 服务中调用 Web 服务时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:34 24 4
gpt4 key购买 nike

我的内部网络上有一个简单的 Web 服务。我使用 SOAPUI 进行了一些测试,从 WSDL 生成服务类,并编写了一些 java 代码来访问该服务。一切都按预期进行,因为我能够创建服务代理类并进行调用。很简单的东西。唯一的障碍是让 java 信任来自提供 Web 服务的机器的证书。这不是技术问题,而是我缺乏基于 SSL 的 Web 服务的经验。现在谈谈我的问题。我编写了一个简单的 EJB 服务并将其部署到 JBoss Application Server 4.3 中,现在在之前有效的代码中出现以下错误。

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

我可以使用错误消息中的 URL 从与应用程序服务器在同一台计算机上运行的 Web 浏览器访问 wsdl 文件。我还可以在应用程序服务器所在的同一台计算机上运行访问应用程序服务器外部的 Web 服务的代码(只是不是从内部运行)。我不知道从这里该去哪里。我打开了 JBOSS 中的调试日志,除了上面显示的内容之外什么也没有得到。我在网上做了一些搜索,发现一些问题有同样的错误,但这些问题没有答案。 Web 服务类是使用 wsimport ant 任务通过 JAX-WS 2.2 生成的,并放置在 ejb 包中包含的 jar 中。 JBoss 部署在 RHEL 5.4 中。我将此发布在 JBOSS community forum但截至撰写本文时尚未得到回复。

最佳答案

看看它尝试做的 ServiceDelegateImpl:

InputStream = wsdlURL.openStream();

其中 wsdlURL 是非空 URL。这意味着问题出在 openStream() 上。我预计问题出在 https 根证书上;我可以想象 JBoss 在某处拥有自己的可接受的根证书存储,而您的根证书并不在那里。

为了测试这一点,我要做的就是在 HTTP 服务器上部署服务,并使 wsdlURL 成为 http URL。如果有效,那就是 SSL 层。

如果它是 SSL 层,请尝试通过在命令行上定义它来手动添加 keyStore,如 this SO question 的答案中所示。 。

关于java - 从 JBOSS EJB 服务中调用 Web 服务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com