Потеря соединения с веб-сервисом через https "Нет доступной реализации X509TrustManager" - PullRequest
4 голосов
/ 11 ноября 2009

У меня действительно странная проблема с сертификатами Java и SSL. Надеюсь, кто-то может помочь.

  • Сеть работает в кластере из 3 одинаковых серверов
  • Все серверы содержат «Приложение A», которое является портлетом JSR-168.
  • «Приложение A» использует веб-сервис, работающий на
  • «Приложение B» также использует веб-сервис на
  • Все 3 сервера имеют сертификат SSL от webservices.domain.com в хранилище ключей.

Когда я загружаю сервер. Приложение A & B отлично работает на всех серверах. Через некоторое время (без определенного времени) Приложение A сходит с ума на одном сервере, а не на одном и том же сервере, и перестает работать.

Сервер # 1 Приложение A теряет соединение с веб-сервисом, говоря, что «реализация 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

Ответы [ 3 ]

1 голос
/ 11 ноября 2009

Хм, вы можете попробовать (где-то в вашем коде инициализации, до вызова услуг):

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

Вы можете получить код для EasyX509TrustManager здесь Или вы можете предоставить собственную реализацию.

1 голос
/ 03 января 2013

После долгих отладок и проб каждого решения, доступного в сети, мы наконец нашли причину.

Мы устанавливали неверный пароль для свойств javax.net.ssl.trustStorePassword и javax.net.ssl.keyStorePassword.

Как только вы установите правильный пароль, это исключение больше не появится :). Вы можете проверить существующие настройки, просто добавив оператор System.getProperties () или System.getProperty (propertyName).

0 голосов
/ 11 ноября 2009

A теряет связь с веб-сервисом

S / свободный / потерять / г

говорит, что "Нет X509TrustManager реализация доступна "(см. дамп ниже), но приложение B, разговаривая с тот же сервер продолжает качаться.

Разорванные связи - это просто факт жизни. Вероятно, приложение B лучше справляется с поиском и повторением рутинных ошибок.

Может быть, есть более серьезная проблема, но было бы неплохо исправить A, чтобы сбой рукопожатия SSL не повредил всю службу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...