2011-08-02 24 views
0

我的應用程序是一個基於swing的客戶端,使用spring remoting Http調用器與tomcat進行通信,我想轉換爲https。Spring使用Https和tomcat進行遠程訪問

 
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [https://localhost:8443/aten_server/metadataservice/MetaDataService-httpinvoker]; nested exception is 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 org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:212) 
     at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:145) 
     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 
     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 
     at $Proxy4.getMemberStatuses(Unknown Source) 
     at com.kantarmedia.panelmanager.presenters.AbstractPresenter.(AbstractPresenter.java:114) 
     at com.kantarmedia.panelmanager.presenters.MainPanelPresenter.(MainPanelPresenter.java:28) 
     at com.kantarmedia.panelmanager.PanelManagerFactory.(PanelManagerFactory.java:135) 
     at com.kantarmedia.panelmanager.PanelManagerApp.startup(PanelManagerApp.java:32) 
     at org.jdesktop.application.Application$1.run(Application.java:171) 
     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642) 
     at java.awt.EventQueue.access$000(EventQueue.java:85) 
     at java.awt.EventQueue$1.run(EventQueue.java:603) 
     at java.awt.EventQueue$1.run(EventQueue.java:601) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) 
     at java.awt.EventQueue.dispatchEvent(EventQueue.java:612) 
     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
     at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Caused by: 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.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1649) 
     at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241) 
     at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235) 
     at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206) 
     at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) 
     at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) 
     at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632) 
     at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) 
     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) 
     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) 
     at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:502) 
     at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973) 
     at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993) 
     at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397) 
     at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170) 
     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) 
     at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324) 
     at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.executePostMethod(CommonsHttpInvokerRequestExecutor.java:196) 
     at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.doExecuteRequest(CommonsHttpInvokerRequestExecutor.java:130) 
     at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136) 
     at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:192) 
     at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:174) 
     at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:142) 
     ... 22 more 
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:323) 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217) 
     at sun.security.validator.Validator.validate(Validator.java:218) 
     at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) 
     at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) 
     at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) 
     at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185) 
     ... 44 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174) 
     at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238) 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:318) 
     ... 50 more 

我的客戶端的Spring配置文件是

<bean id="memberDataServiceHttpInvokerProxy" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> 
     <property name="serviceUrl" value="#{systemProperties['aten.protocol']}://#{systemProperties['aten.host']}:#{systemProperties['aten.port']}/aten_server/memberdataservice/MemberDataService-httpinvoker"/> 
     <property name="serviceInterface" value="com.kantar.server.panel.services.IMemberDataService"/> 
     <property name="httpInvokerRequestExecutor"> 
      <bean class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor" /> 
     </property> 
</bean> 

請幫我理清問題

回答

0

此異常意味着你使用SSL/HTTPS。請檢查您的證書,似乎沒有安裝或無效