Eclipse 错误为java.security.cert.CertificateParsingException的奇怪行为
我在SSL和Java方面遇到了一些问题。 我会尽量快一点说清楚 它是一个Java网络应用程序,必须阅读电子邮件并用这些电子邮件制作东西。 我有一个连接到邮箱的证书Eclipse 错误为java.security.cert.CertificateParsingException的奇怪行为,eclipse,maven,tomcat,ssl,Eclipse,Maven,Tomcat,Ssl,我在SSL和Java方面遇到了一些问题。 我会尽量快一点说清楚 它是一个Java网络应用程序,必须阅读电子邮件并用这些电子邮件制作东西。 我有一个连接到邮箱的证书 Technicals info : Eclipse : Luna Project : compiled with JDK 1.6 Tomcat : pluged with Eclipse, launched with JDK 1.6 Tomcat on Test server : launched with JDK 1.6 Mave
Technicals info :
Eclipse : Luna
Project : compiled with JDK 1.6
Tomcat : pluged with Eclipse, launched with JDK 1.6
Tomcat on Test server : launched with JDK 1.6
Maven pom.xml : compiler plugin source/target : 1.6
我的问题是:
当我第一次通过Git签出项目或使用maven编译项目时,使用:
mvm clean compile eclipse:eclipse
我得到了一个在Eclipse中运行正常的项目,并进行了编译。
Ok对我来说意味着:源代码可以编译,api可以使用,库可以使用JDK1.6,webapp可以在Tomcat上运行
然后,如果我尝试阅读邮件,就会出现以下错误:
java.net.SocketException: java.security.NoSuchAlgorithmException:
Error constructing implementation (algorithm: Default,
provider: SunJSSE, class: sun.security.ssl.DefaultSSLContextImpl)
DEBUG: getProvider() returning provider protocol=imaps; type=javax.mail.Provider$Type@7df92e01; class=com.sun.mail.imap.IMAPSSLStore; vendor=Sun Microsystems, Inc
DEBUG: mail.imap.fetchsize: 16384
keyStore is :
keyStore type is : jks
keyStore provider is :
init keystore
init keymanager of type SunX509
trustStore is: D:\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\leaseit dev\WEB-INF\classes\certif\client-truststore.jks
trustStore type is : jks
trustStore provider is :
init truststore
default context init failed: java.security.cert.CertificateParsingException:java.io.IOException: DerInputStream.getLength(): lengthTag=50, too big.
如果我只是用Eclipse的Options->clean清理我的项目,那么我就没有SSL问题了。在我的测试服务器上,当我使用maven部署它时,总是会遇到问题
我认为这是一种非常奇怪的行为,我找不到问题出在哪里。
我读了很多关于web上线程的文章,包括Stackoverflow,我检查了我是否有jsse.jar,我把javax.mail放到了调试中,我试着调试它,但是错误在代码中显示得太远了…:-
奇怪的事实:我还有一个分享所有阅读内容的web应用程序
邮件部分和我没有问题。但我不是100%确定
它们具有相同的环境设置
我不想相信我的证书有问题,因为它来自另一个应用程序,如果我清理我的项目,它是可以读取的
问题:
你建议我做哪些测试?
为什么简单的清洁就可以解决我的问题?
它是否与我的jdk或证书相关,与其他应用程序相同?
我怀疑你的client-truststore.jks被maven过滤破坏了。尝试使用以下maven资源插件配置在pom中停用它
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>jks</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>