Otrzymuję ff. Błąd w Java Console occassionally:Program ładujący klasy Applet nie może znaleźć jednej z klas w słoju.
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
Mój tag aplet jest następujący:
<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>
Ważne jest, podkreślam słowo "okazyjnie". Czasami aplet jest inicjowany bez problemu. Oznacza to również, że często po ponownym uruchomieniu przeglądarki problem znika.
Jestem świadomy applet fails to load class from jar i Applet class loader cannot find a class in the applet's jar, ale myślę, że nie mają one zastosowania w mojej sprawie. SomeClass i MyApplet są w tym samym słoiku, a strona jest dostępna lokalnie.
myślę, co się dzieje, jest to, że przeglądarka plug-in Java nie był w stanie załadować klasę z myApplet__0.0.1177.jar i tak poszedłem szukać go w folderze codebase. Teraz pytanie brzmi: w jaki sposób można załadować MyApplet, ale nie SomeClass? –
Jaka wersja Java jest używana po stronie klienta? – uthark
Powiedziałeś, że strona jest dostępna lokalnie, ale w logach widzę "myserver". Czy to nazwa twojego komputera localhost? Również, jakiej przeglądarki używasz do testowania? Internet Explorer, firefox? – uthark