I am noticing what I would consider odd behavior. I have an applet which loads. In the first call made to the applet (after init), which initiates a web service client, it attempts to load classes from jaxrpc.jar, but it gets java.lang.NoClassDefFoundError: javax/xml/rpc/Service.
java.lang.NoClassDefFoundError: javax/xml/rpc/Service
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
<snip>
If I refresh the page, it appears the applet gets past that and then complains about not being able to load the web service locator class itself:
java.lang.NoClassDefFoundError: webmedx/client/applet/util/cdsproxy/WSAudioArchiveLocator
at webmedx.client.applet.audio.CdsProxy.CdsProxy.retrieveAudioES(CdsProxy.java:28)
at webmedx.client.applet.audio.TransferApplet.fileDownloadEs(TransferApplet.java:1029)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
<snip>
I would
expect to have seen the same behavior/error twice... Any thoughts? Hitting "refresh" subsequent times then results in the second error simply being repeated for each refresh.
(Note I have implemented a bypass in the java.policy to allow any applet to do anything - this is a workaround as I do not have access to the keys to sign the applet for development purposes, and thus cannot sign the applet, which is otherwise required...)
Here is the applet tag from the HTML file:
<applet code="webmedx.client.applet.audio.TransferApplet.class" name=TransferApplet width=10 height=10 archive="axis.jar,jaxrpc.jar, jndi.jar" >
<PARAM NAME="image" VALUE="images/webmedx_icon-32x32.gif">
<PARAM NAME="boxmessage VALUE="Loading the Webmedx Audio Player">
<PARAM NAME="cache_archive" VALUE="../common/audio.jar">
<PARAM name="codebase_lookup" value="false">
<PARAM NAME="DebugLevel" value="1">
<PARAM NAME="userenterprise" VALUE="BHS">
<PARAM NAME="userfacility" VALUE="BHS">
<param name="scriptable" value="true">
</applet>{code}
Here is a snip from the cmd line showing the jar which contains the applet class also contains the class it reports it cannot find
{code}
C:\EclipseWorkspaces\Enterprise\Enterprise\source\cis\common>jar -tvf audio.jar | grep TransferApplet
19814 Mon Jul 12 13:47:10 EDT 2010 webmedx/client/applet/audio/TransferApplet.class
C:\EclipseWorkspaces\Enterprise\Enterprise\source\cis\common>jar -tvf audio.jar | grep WSAudioArchive
612 Mon Jul 12 13:47:10 EDT 2010 webmedx/client/applet/util/cdsproxy/WSAudioArchive.class
6219 Mon Jul 12 13:47:10 EDT 2010 webmedx/client/applet/util/cdsproxy/WSAudioArchiveLocator.class{code}
Edited by: alexx_wmx on Jul 12, 2010 8:16 PM