【发布时间】:2011-11-29 20:24:52
【问题描述】:
我有一个 JAX-WS Web 服务,它调用同一服务器上的远程 EJB。一切都在 Glassfish 3.1.1 上运行,并且应用程序部署为 EAR——一个用于 Web 服务,另一个用于 EJB。这在本地工作得很好,但是在部署到测试服务器时,我得到了关于不受信任(自签名)SSL 证书的典型异常。以下是相关摘录:
Caused by: com.sun.xml.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:132)
该异常恰好发生在进行 EJB 调用的 Web 服务中。这让我感到困惑,因为那时我不希望与 HTTPS 有任何关系。
到目前为止,最有希望的角度是这与事务协调有关,如 here 所述,默认情况下应该使用 HTTPS。但是,设置 com.sun.xml.ws.tx.preferredScheme=http 对问题没有影响。
非常感谢任何建议。
【问题讨论】:
标签: web-services jakarta-ee glassfish jax-ws