在tomcat工程中因需要加入了bouncycastle包,同时也在"Java Build Path"中加入了相关的jar包(bcmail-jdk16-1.45.jar、bcpg-jdk16-1.45.jar、bcprov-jdk16-1.45.jar),但是当启动tomcat后,运行到这句语句时,
public static final String DIGEST_SHA1 = CMSSignedGenerator.DIGEST_SHA1;
发生了错误,错误原因不详,通过单步调试程序跳到了函数“InvocationTargetException”中,也就是发生了InvocationTargetException异常。
随后在网上搜索了N多原因,都没有解决这个问题。
最后无意间打开了tomcat中工程的运行目录,发现在WebContent\WEB-INF\lib 目录下没有以上所说的三个jar包,故将它们拷贝到了这个目录下,重新启动tomcat,问题解决。
总结:在tomcat项目中,要引入外部jar包的情况下,最好先将jar包拷到工程的WebContent\WEB-INF\lib目录下,再从eclipse中导入,这样在tomcat启动时,这些jar包会自动拷贝到运行目录下去。
(或许可能在某个地方设置一下也能解决这个问题,但是目前我还不知道,有谁知道的也请麻烦告诉一下)