Java Jetty ServletTester引发SecurityException
当我将以下依赖项(及其所有可传递的DEP)放在我的类路径上时:Java Jetty ServletTester引发SecurityException,java,jetty,securityexception,jar-signing,Java,Jetty,Securityexception,Jar Signing,当我将以下依赖项(及其所有可传递的DEP)放在我的类路径上时: <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>test-jetty-servlet</artifactId> <version>8.1.14.v20131031</version> </dependency> 我明白了: java.la
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>test-jetty-servlet</artifactId>
<version>8.1.14.v20131031</version>
</dependency>
我明白了:
java.lang.SecurityException: class "javax.servlet.DispatcherType"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
<giant stack trace omitted for brevity>
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
java.lang.SecurityException:类“javax.servlet.DispatcherType”的签名者信息与同一包中其他类的签名者信息不匹配
位于java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
位于java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:794)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
为什么?怎么解决?如果其中一个可传递依赖项是有符号的,我如何判断是哪一个?有没有办法指定所有可传递DEP的未签名版本?这里还有其他问题吗?还是有更好的解决方案?。我有一个类似的问题,并通过删除路径中的冗余servlet api(提供了javax.servlet api 2.3)来解决它
我可以从命令行(在我的例子中是sbt)运行测试,但当我从Intellij运行测试时,它们崩溃了。将您的
mvn dependency:tree
输出添加到问题中。您的依赖关系中可能存在冲突。
java.lang.SecurityException: class "javax.servlet.DispatcherType"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
<giant stack trace omitted for brevity>
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)