Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 错误为java.security.cert.CertificateParsingException的奇怪行为_Eclipse_Maven_Tomcat_Ssl - Fatal编程技术网

Eclipse 错误为java.security.cert.CertificateParsingException的奇怪行为

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

我在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
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>