Obtengo el ff. error en la consola de Java de vez en cuando:Applet class loader no puede encontrar una de las clases en el jar
Exception in thread "thread applet-my.package.MyApplet-10" java.lang.NoClassDefFoundError: another/package/SomeClass
at my.package.MyApplet.init(MyApplet.java:95)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: another.package.SomeClass
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 3 more
Caused by: java.io.IOException: open HTTP connection failed:https://myserver/mycontext/applets/another/package/SomeClass.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Mi etiqueta applet es el siguiente:
<applet codebase="../../applets" code="my.package.MyApplet" class="invisible" id="myApplet">
<param value="value0" name="param0"/>
...
<param value="valueN" name="paramN" />
<param value="folder/myApplet__0.0.1177.jar,folder/commons-io-1.3.2__0.0.1177.jar,..." name="cache_archive"/>
<param value="0.0.1177.0,0.0.1177.0,...," name="cache_version"/>
</applet>
Es importante subrayo la palabra "ocasionalmente". A veces, el applet se inicializa sin problemas. Esto también significa que, a menudo, cuando se reinicia el navegador, el problema desaparece.
Conozco applet fails to load class from jar y Applet class loader cannot find a class in the applet's jar pero creo que no son aplicables a mi caso. SomeClass y MyApplet están en el mismo contenedor y se está accediendo a la página localmente.
Creo que lo que sucede es que el complemento del navegador Java no pudo cargar la clase desde myApplet__0.0.1177.jar y así fue buscarlo en la carpeta de la base de código. La pregunta ahora es ¿cómo es posible cargar MyApplet pero no SomeClass? –
¿Qué versión de Java se usa en el lado del cliente? – uthark
Usted dijo que se está accediendo a la página localmente, pero en los registros veo "myserver". ¿Es este el nombre de su máquina localhost? Además, ¿qué navegador usas para probar? Internet Explorer, Firefox? – uthark