概述
eclipse中jetty启动一个maven工程, 报错
Caused by:
java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor6 cannot access its superclass sun.reflect.ConstructorAccessorImpl
at sun.misc.Unsafe.defineClass(Native Method)
at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:399)
at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:396)
at java.security.AccessController.doPrivileged(Native Method)
at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:395)
at sun.reflect.MethodAccessorGenerator.generateConstructor(MethodAccessorGenerator.java:94)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:48)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:608)
工程中显式依赖了一个rt.jar, 在eclipse中压根就搜索不到
GeneratedConstructorAccessor6
, 似乎是动态生成的, 反编译rt.jar 得到
ConstructorAccessorImpl
源码为
package sun.reflect;
import java.lang.reflect.InvocationTargetException;
abstract class ConstructorAccessorImpl
extends MagicAccessorImpl
implements ConstructorAccessor
{
public abstract Object newInstance(Object[] paramArrayOfObject)
throws InstantiationException, IllegalArgumentException, InvocationTargetException;
}
所以这到底是一个什么错呢?怎么解决呢?
因为工程中显式依赖了一个
rt.jar
<dependency>
<groupId>com.sun</groupId>
<artifactId>rt</artifactId>
</dependency>
删除了该依赖即可解决问题。 但不知为依赖的
rt.jar
与系统默认的
rt.jar
有什么区别, 导致使用依赖的
rt.jar
会报错, 而使用默认的
rt.jar
却正常。
最后
以上就是呆萌啤酒为你收集整理的jetty java 工程_jetty启动java web工程报错的全部内容,希望文章能够帮你解决jetty java 工程_jetty启动java web工程报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复