我的applet放在a应用的b目录下,应用时配置了log4j的,但是每次applet去连servlet的时候会先去连logger。如果在b下放个报错中提到的org包,就能正常运行了。但是我在servlet里没用到logger,有没有什么办法不让applet去连这个logger?这样就不用在b下放org包了。
这是控制台信息:
basic: 已注册原型监听程序
liveconnect: 调用 JS 方法:document
liveconnect: 调用 JS 方法:URL
basic: 正在引用类载入程序:sun.plugin.ClassLoaderInfo@fd54d6, refcount=1
basic: 已添加进度监听程序:sun.plugin.util.GrayBoxPainter@19f3736
basic: 正在载入小应用程序...
basic: 正在初始化小应用程序...
basic: 正在启动小应用程序...
network: 正在使用代理 DIRECT 连接 http://x.xxx.xxx.xx:8080/a/someservlet
network: 正在使用代理 DIRECT 连接 http://localhost:8080/a/b/org/apache/log4j/Logger.class
network: 正在连接 http://localhost:8080/a/b/org/apache/log4j/Logger.class 与 cookie "JSESSIONID=EA428139D7BCA1C9E29EB1D855E38018"
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredField(Unknown Source)
at java.io.ObjectStreamClass.getDeclaredSUID(Unknown Source)
at java.io.ObjectStreamClass.access$600(Unknown Source)
at java.io.ObjectStreamClass$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(Unknown Source)
at java.io.ObjectStreamClass.lookup(Unknown Source)
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at xxx.xxx.xxxx.xxx.init(xxxxxx.java:240)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: 异常:java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
这是控制台信息:
basic: 已注册原型监听程序
liveconnect: 调用 JS 方法:document
liveconnect: 调用 JS 方法:URL
basic: 正在引用类载入程序:sun.plugin.ClassLoaderInfo@fd54d6, refcount=1
basic: 已添加进度监听程序:sun.plugin.util.GrayBoxPainter@19f3736
basic: 正在载入小应用程序...
basic: 正在初始化小应用程序...
basic: 正在启动小应用程序...
network: 正在使用代理 DIRECT 连接 http://x.xxx.xxx.xx:8080/a/someservlet
network: 正在使用代理 DIRECT 连接 http://localhost:8080/a/b/org/apache/log4j/Logger.class
network: 正在连接 http://localhost:8080/a/b/org/apache/log4j/Logger.class 与 cookie "JSESSIONID=EA428139D7BCA1C9E29EB1D855E38018"
java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredField(Unknown Source)
at java.io.ObjectStreamClass.getDeclaredSUID(Unknown Source)
at java.io.ObjectStreamClass.access$600(Unknown Source)
at java.io.ObjectStreamClass$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(Unknown Source)
at java.io.ObjectStreamClass.lookup(Unknown Source)
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at xxx.xxx.xxxx.xxx.init(xxxxxx.java:240)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: 异常:java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger;
主要问题是找不到这个类.
因为这个类不是当前的classpath里面吧
或者说这个包就没有装
但是在载入applet的时候,那个红色的进度条还是会一直到窗体的最右边?不知道怎么能变正常?
就是在载入applet的时候,那个红色的进度条还是会一直到窗体的最右边