Q
Qu0ll
I promised Andrew Thompson I would report back as to my progress getting
this to work and so here I am.
I can report that the progress has been good and also baffling. It is good
to the extent that I have been able to implement lazy JAR downloading for an
applet launched from JNLP using DownloadService in a way that works very
well but baffling in the sense that it only works on Windows and even then
only in some browsers.
The environments which work are:
Firefox 3.5.2 on Windows Vista
Firefox 3.0.13 on Windows Server 2003
IE 8 on Windows Vista
IE 8 on Windows Server 2003
Chrome 3.0.195.6 on Windows Vista
The environments that don't work are:
Opera 9.64 on Windows Vista
Safari 4.0.2 on Windows Vista
Firefox 3.0.11 on Solaris x86 10
Firefox 3.0.13 on Ubuntu 8.10
In all cases where the applet is failing, the exception I am getting is
this:
java.lang.NoClassDefFoundError: javax/jnlp/DownloadServiceListener
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
javax.jnlp.DownloadServiceListener
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 10 more
I get a similar ClassNotFoundException for
javax/jnlp/UnavailableServiceException if I try to use this exception class
to detect if the DownloadService is available.
So, how can this be when all environments are using the exact same version
of Java (6u16)? It appears that in some browsers on some operating systems
the JNLP services are not fully implemented or not available at all. Now, I
have a suspicion that browsers like Opera still use the old "Plugin1"
functionality instead of the new "Plugin2" functionality even though a
recent JRE is in place and I believe that launching an applet using JNLP is
only supported in Plugin2. This would explain the results for Opera and
perhaps Safari but doesn't really explain the results for Firefox on Solaris
and Ubuntu as Firefox 3.x on Windows has supported JNLP launching for some
time.
Does anyone have any thoughts, ideas or suggestions on this?
--
And loving it,
-Qu0ll (Rare, not extinct)
_________________________________________________
(e-mail address removed)
[Replace the "SixFour" with numbers to email me]
this to work and so here I am.
I can report that the progress has been good and also baffling. It is good
to the extent that I have been able to implement lazy JAR downloading for an
applet launched from JNLP using DownloadService in a way that works very
well but baffling in the sense that it only works on Windows and even then
only in some browsers.
The environments which work are:
Firefox 3.5.2 on Windows Vista
Firefox 3.0.13 on Windows Server 2003
IE 8 on Windows Vista
IE 8 on Windows Server 2003
Chrome 3.0.195.6 on Windows Vista
The environments that don't work are:
Opera 9.64 on Windows Vista
Safari 4.0.2 on Windows Vista
Firefox 3.0.11 on Solaris x86 10
Firefox 3.0.13 on Ubuntu 8.10
In all cases where the applet is failing, the exception I am getting is
this:
java.lang.NoClassDefFoundError: javax/jnlp/DownloadServiceListener
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException:
javax.jnlp.DownloadServiceListener
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 10 more
I get a similar ClassNotFoundException for
javax/jnlp/UnavailableServiceException if I try to use this exception class
to detect if the DownloadService is available.
So, how can this be when all environments are using the exact same version
of Java (6u16)? It appears that in some browsers on some operating systems
the JNLP services are not fully implemented or not available at all. Now, I
have a suspicion that browsers like Opera still use the old "Plugin1"
functionality instead of the new "Plugin2" functionality even though a
recent JRE is in place and I believe that launching an applet using JNLP is
only supported in Plugin2. This would explain the results for Opera and
perhaps Safari but doesn't really explain the results for Firefox on Solaris
and Ubuntu as Firefox 3.x on Windows has supported JNLP launching for some
time.
Does anyone have any thoughts, ideas or suggestions on this?
--
And loving it,
-Qu0ll (Rare, not extinct)
_________________________________________________
(e-mail address removed)
[Replace the "SixFour" with numbers to email me]