2011-08-05 67 views
0

突然之间,我的Java应用程序使用SimpleDB不再工作。我在Windows 7上使用Java AWS SDK 1.2.4版。我有以下例外情况:亚马逊SimpleDB:访问信任存储的KeyStoreException问题

java.security.KeyStoreException: problem accessing trust storejava.io.IOException: Invalid keystore format 
com.sun.net.ssl.internal.ssl.TrustManagerFactoryImpl.engineInit(TrustManagerFactoryImpl.java:55) 
javax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:230) 
org.apache.http.conn.ssl.SSLSocketFactory.createSSLContext(SSLSocketFactory.java:190) 
org.apache.http.conn.ssl.SSLSocketFactory.createDefaultSSLContext(SSLSocketFactory.java:209) 
org.apache.http.conn.ssl.SSLSocketFactory.<init>(SSLSocketFactory.java:333) 
org.apache.http.conn.ssl.SSLSocketFactory.getSocketFactory(SSLSocketFactory.java:165) 
org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:45) 
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:98) 
com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:67) 
com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:111) 
com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:59) 
com.amazonaws.services.simpledb.AmazonSimpleDBClient.<init>(AmazonSimpleDBClient.java:118) 

原因是什么以及如何解决问题?

回答

1

对不起,我解决了这个问题。它是由我的证书文件引起的,通过这些语句在我的web.xml

String sslCertPath = contextEvent.getServletContext().getRealPath(
    "/WEB-INF/classes/jssecacerts"); 
System.setProperty("javax.net.ssl.trustStore", sslCertPath); 

定义一个ServletContextListener来注释掉这些行一切正常加载指出。这是由该文件的损坏引起的。

之后,我修理了我的钥匙店,取消注释行,有一个little fight with tomcat,之后所有工作都重新开始,同时还有我的证书。

+0

嗨!自我回答并不是一件坏事,在这里,你已经解决的自我回答问题是良好的实践,并帮助其他人在寻找解决方案时发现你的问题! – BertNase