Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用Java和CXF连接到服务器上war文件中的web服务_Java_Web Services_Tomcat_Cxf_Myeclipse - Fatal编程技术网

Can';t使用Java和CXF连接到服务器上war文件中的web服务

Can';t使用Java和CXF连接到服务器上war文件中的web服务,java,web-services,tomcat,cxf,myeclipse,Java,Web Services,Tomcat,Cxf,Myeclipse,我正在使用myEclipse 10.0中的tomcat 6(嵌入式服务器)和ApacheCXF作为web服务应用程序。我的问题是我试图连接到一个服务器,该服务器有一个war文件,其中包含一些服务代码。然而,当我试图通过代码点击它时,我从CXF得到了以下错误: 警告:拦截器已引发异常,正在解除 org.apache.cxf.interceptor.Fault:无法发送消息 然后这个错误似乎是根本问题: 原因:javax.net.ssl.SSLHandshakeException: sun.secu

我正在使用myEclipse 10.0中的tomcat 6(嵌入式服务器)和ApacheCXF作为web服务应用程序。我的问题是我试图连接到一个服务器,该服务器有一个war文件,其中包含一些服务代码。然而,当我试图通过代码点击它时,我从CXF得到了以下错误:

警告:拦截器已引发异常,正在解除 org.apache.cxf.interceptor.Fault:无法发送消息

然后这个错误似乎是根本问题:

原因:javax.net.ssl.SSLHandshakeException: sun.security.validator.validator异常:PKIX路径生成失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效证书路径

我使用InstallCert.java访问服务器,它给了我以下信息:

正在加载密钥库jssecacerts。。。正在打开连接到:443。。。 正在启动SSL握手

无错误,证书已受信任

我使用Porticle查看cacerts文件,并确保服务器sha1和md5信息与服务器上的信息完全匹配。cacerts文件位于java/jre6/lib/security文件夹下,我认为tomcat在加载时会自动获取该文件夹

我还创建了一个.bin文件夹作为另一个想法,并将其放在tomcat的webapps目录下,并对服务器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" />


我找到了一些文章,展示了如何将证书加载到密钥库中,但这似乎不是问题所在,尽管这是此错误的常见解决方案。我是否遗漏了什么,或者是否有其他原因导致我出现此错误?

结果是myEclipse有自己的jre运行自己的默认cacerts文件。在我的机器上,它就在这里:C:\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86\u 1.6.0.013\jre\lib\security


我使用ProcessExplorer查看javaw.exe进程,然后进行查找(控制键+F键),它显示了加载的附加jre。我把正确的密码复制到了那个目录,重新启动了所有程序,一切正常

cxf用户邮件列表可能是一个更有成效的提问场所。