【发布时间】:2012-09-24 16:40:08
【问题描述】:
我在 myEclipse 10.0 中使用 tomcat 6(嵌入式服务器)和 Apache CXF 来开发 Web 服务应用程序。我的问题是我正在尝试连接到一个服务器,该服务器有一个带有一些服务代码的 war 文件。但是,当我尝试通过代码点击它时,我从 CXF 收到此错误:
警告:拦截器已抛出异常,正在展开 org.apache.cxf.interceptor.Fault:无法发送消息。
然后这个错误似乎是根本问题:
引起:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径
我使用 InstallCert.java 访问服务器,它给了我这个:
正在加载 KeyStore jssecacerts... 正在打开与 :443 的连接... 开始 SSL 握手...
没有错误,证书已被信任
我使用 Porticle 查看了 cacerts 文件,果然服务器 sha1 和 md5 信息与服务器上的信息完全匹配。 cacerts 文件位于 java/jre6/lib/security 文件夹下,我认为它是在加载时由 tomcat 自动拾取的。
我还创建了一个 .bin 文件夹作为另一个想法,并将其放在 webapps 目录下用于 tomcat 并像这样修改服务器 xml:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="<path on my machine>/webapps/tomcat.bin" keystorePass="changeit" />
我发现一些文章展示了如何将证书加载到您的密钥库,但这似乎不是问题,即使这是此错误的常见解决方案。是我遗漏了什么,还是有其他原因导致我收到此错误?
【问题讨论】:
-
cxf 用户邮件列表可能是一个更有成果的地方。
标签: java web-services tomcat cxf myeclipse