2009-11-11 140 views
4

我對Java和SSL證書有一個很奇怪的問題。希望有人能幫忙。通過https丟失與web服務的連接「No X509TrustManager implementation available」

  • 甲幅中的3臺相同服務器的集羣
  • 所有服務器包含 「應用程序A」,這是一個JSR-168的portlet運行。
  • 「應用程序A」使用了上
  • 「應用程序B」運行的Web服務也使用上
  • Web服務的所有3服務器具有webservices.domain.com密鑰庫中的SSL證書。

當我啓動服務器。應用程序A & B在所有服務器上工作良好。經過一段時間(沒有特定的時間週期),應用程序A將一臺服務器掛起,而不總是相同的服務器,並停止工作。

服務器#1 應用A丟失連接到Web服務表示「沒有可用的X509TrustManager實現」(見下轉儲),但是應用程序B,聊到同一臺服務器上搖擺保持。

服務器#2 應用A & B完美地工作。

服務器#3 應用A & B完美地工作。

重新啓動服務器#1後,一切都恢復正常,直到應用程序A(或B)再次失去連接。

任何人都知道解決方案嗎?

13.10.2009 17:21:45 org.apache.cxf.transport.https.SSLUtils getCiphersuites 
INFO: The cipher suites have not been configured, falling back to cipher suite filters. 
13.10.2009 17:21:45 org.apache.cxf.transport.https.SSLUtils getCiphersuites 
INFO: The cipher suite filters have not been configured, falling back to default filters. 
13.10.2009 17:21:45 org.apache.cxf.transport.https.SSLUtils getCiphersFromList 
INFO: The cipher suites have been set to SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5. 
13.10.2009 17:21:46 org.apache.cxf.phase.PhaseInterceptorChain doIntercept 
INFO: Interceptor has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Could not send Message. 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) 
at $Proxy406.getRobbaPlanFree(Unknown Source) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.services.GSMRobbiServiceManager.getRobbaPlanFree(GSMRobbiServiceManager.java:153) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.controller.radgjafiController.populatePreferences(radgjafiController.java:179) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.controller.radgjafiController.view(radgjafiController.java:76) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:271) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:259) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleRender(AnnotationMethodHandlerAdapter.java:218) 
at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:811) 
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:483) 
at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:453) 
at javax.portlet.GenericPortlet.render(GenericPortlet.java:175) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletMethodCommand.render(PortletMethodCommand.java:15) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletContentCommand.render(PortletContentCommand.java:19) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletCacheCommand.render(PortletCacheCommand.java:35) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletSecurityCommand.render(PortletSecurityCommand.java:27) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.render(BaseCommandUnit.java:31) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.execute(ExecutionContext.java:20) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletCommandChain.doRender(PortletCommandChain.java:29) 
at org.exoplatform.services.portletcontainer.impl.PortletApplicationHandler.process(PortletApplicationHandler.java:234) 
at org.exoplatform.services.portletcontainer.impl.servlet.ServletWrapper.service(ServletWrapper.java:91) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) 
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584) 
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.dispatch(PortletContainerDispatcher.java:390) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.process(PortletContainerDispatcher.java:329) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.render(PortletContainerDispatcher.java:276) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerServiceImpl.render(PortletContainerServiceImpl.java:122) 
at vyre.publishing.portal.Portal.renderPortlet(Portal.java:413) 
at vyre.publishing.PortletInstance.render(PortletInstance.java:221) 
at org.apache.jsp.WEB_002dINF.generated_005ffiles.pub_005fmodule.page.page17138_jsp._jspService(page17138_jsp.java:300) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) 
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) 
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) 
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) 
at vyre.delivery.MainFilter.doFilter(MainFilter.java:338) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at vyre.content.search.permissions.ViewPermissionFilter.doFilter(ViewPermissionFilter.java:27) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
at java.lang.Thread.run(Thread.java:595) 
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No X509TrustManager implementation available 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1476) 
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174) 
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:847) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106) 
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495) 
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1038) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:836) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1836) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1794) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1854) 
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) 
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595) 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
... 89 more 
Caused by: java.security.cert.CertificateException: No X509TrustManager implementation available 
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:322) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:840) 
... 107 more 
ERROR [TP-Processor15]: Got unknown error - is.somestuff.companyx.ut.radgjafar.radgjafi.controller.radgjafiController - 2009-10-13 17:21:46,355 
javax.xml.ws.soap.SOAPFaultException: Could not send Message. 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145) 
at $Proxy406.getRobbaPlanFree(Unknown Source) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.services.GSMRobbiServiceManager.getRobbaPlanFree(GSMRobbiServiceManager.java:153) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.controller.radgjafiController.populatePreferences(radgjafiController.java:179) 
at is.somestuff.companyx.ut.radgjafar.radgjafi.controller.radgjafiController.view(radgjafiController.java:76) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:271) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:259) 
at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleRender(AnnotationMethodHandlerAdapter.java:218) 
at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:811) 
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:483) 
at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:453) 
at javax.portlet.GenericPortlet.render(GenericPortlet.java:175) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletMethodCommand.render(PortletMethodCommand.java:15) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletContentCommand.render(PortletContentCommand.java:19) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletCacheCommand.render(PortletCacheCommand.java:35) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletSecurityCommand.render(PortletSecurityCommand.java:27) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.executeNextUnit(ExecutionContext.java:26) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.render(BaseCommandUnit.java:31) 
at org.exoplatform.services.portletcontainer.impl.aop.BaseCommandUnit.execute(BaseCommandUnit.java:24) 
at org.exoplatform.container.component.ExecutionContext.execute(ExecutionContext.java:20) 
at org.exoplatform.services.portletcontainer.impl.aop.PortletCommandChain.doRender(PortletCommandChain.java:29) 
at org.exoplatform.services.portletcontainer.impl.PortletApplicationHandler.process(PortletApplicationHandler.java:234) 
at org.exoplatform.services.portletcontainer.impl.servlet.ServletWrapper.service(ServletWrapper.java:91) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) 
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584) 
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.dispatch(PortletContainerDispatcher.java:390) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.process(PortletContainerDispatcher.java:329) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerDispatcher.render(PortletContainerDispatcher.java:276) 
at org.exoplatform.services.portletcontainer.impl.PortletContainerServiceImpl.render(PortletContainerServiceImpl.java:122) 
at vyre.publishing.portal.Portal.renderPortlet(Portal.java:413) 
at vyre.publishing.PortletInstance.render(PortletInstance.java:221) 
at org.apache.jsp.WEB_002dINF.generated_005ffiles.pub_005fmodule.page.page17138_jsp._jspService(page17138_jsp.java:300) 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) 
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) 
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) 
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) 
at vyre.delivery.MainFilter.doFilter(MainFilter.java:338) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at vyre.content.search.permissions.ViewPermissionFilter.doFilter(ViewPermissionFilter.java:27) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) 
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) 
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) 
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) 
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
at java.lang.Thread.run(Thread.java:595) 
Caused by: org.apache.cxf.interceptor.Fault: Could not send Message. 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299) 
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251) 
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) 
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) 
... 83 more 
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No X509TrustManager implementation available 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1476) 
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174) 
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:847) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106) 
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495) 
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1038) 
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402) 
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:836) 
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1836) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1794) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1854) 
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) 
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595) 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
... 89 more 
Caused by: java.security.cert.CertificateException: No X509TrustManager implementation available 
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:322) 
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:840) 
... 107 more 

回答

-2

一個失去連接到Web服務

S /鬆/輸/ g的

說 「不X509TrustManager 執行可用」(見下文轉儲 ),但應用程序B,與 交談,同一臺服務器繼續晃動。

丟棄的連接只是一個事實。可能App B在捕捉和重試例程錯誤方面做得更好。

可能存在更深層次的問題,但修復A會很好,所以SSL握手失敗並不會降低整個服務。

+0

Downvoted,因爲錯誤顯然與丟棄的連接和SSL握手失敗無關。 – Ben 2017-08-12 09:30:03

1

嗯,你可以嘗試(在你的initaliziation碼的地方,被稱爲服務之前):

 
SSLContext context = SSLContext.getInstance("SSL"); 
context.init(null, new TrustManager[] {new EasyX509TrustManager(null)}, null); 

你可以守則EasyX509TrustManager here 或者您也可以提供自己的實現。

1

經過大量的調試和嘗試網絡上的每個解決方案後,我們終於找到了根本原因。

我們正在爲javax.net.ssl.trustStorePassword和javax.net.ssl.keyStorePassword屬性設置不正確的密碼。

一旦你設置了正確的密碼,這個異常將永遠不會再出現:)。您可以通過簡單添加System.getProperties()或System.getProperty(propertyName)語句來驗證現有設置。