Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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
Java Jetty ServletTester引发SecurityException_Java_Jetty_Securityexception_Jar Signing - Fatal编程技术网

Java Jetty ServletTester引发SecurityException

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

当我将以下依赖项(及其所有可传递的DEP)放在我的类路径上时:

<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)