JOGL web start not working

I’m trying to get a web start application running with the below jnlp file - but I get a NoClassDefFoundError (although it goes away if I include a jogl.jar file)… Am I suppose to some how make sure that when I compile my application’s JARs, it compiles against a certain version of JOGL?


<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.5+" codebase="http://ags.uci.edu/~etolleru/sddm/webstart" href="sddm.jnlp">
  <application-desc />
  <information>
    <title>Stereo Data Display Modules</title>
    <vendor>Erik J. Tollerud</vendor>
    <description>An open source data visualization program implemented with JOGL.</description>
    <offline-allowed/>
  </information>
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.5+"/>
    <jar href="SDDM.jar" main="true"/>
	<jar href="lib/AbsoluteLayout.jar"/>
	<jar href="lib/joglutilsnb.jar"/>
	<jar href="lib/swing-layout-1.0.jar"/>
	<jar href="lib/vecmath.jar"/>
    [b]<extension name="jogl" href="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp"/>[/b]
  </resources>
</jnlp>

Do the JOGL demos work? They use exactly the same extension JNLP line you are using.

I suspect the issue is that you have dropped a jogl.jar file into your JRE or JDK, which is strongly discouraged as it breaks Java Web Start. See the JOGL User’s Guide.

There is no jogl.jar file in any of my jdk or jre directories, and the JOGL demos work correctly… and it seems to be reproducable on other computers…

In this case could you please post the complete stack trace?

In order to use the extension JNLP you’re pointing to, you should compile against either the current nightly build of JOGL or the most recently released official build (in this case, JSR-231 1.0.0).

Stack trace is below, and I tried updating to the latest nightly version of jogl.jar with no success…

Exception in thread “javawsApplicationMain” java.lang.NoClassDefFoundError: javax/media/opengl/GLCapabilitiesChooser
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

That’s a pretty strange stack trace. I would expect to at least see a call to an application class’s static initializer or something on the top of the stack. I think the best way to track this down would be for you to iteratively boil down your app into the smallest web-startable test case which reproduces the problem and then post a JNLP launch link as well as source code for the test case.

It is now working… I have no idea, why, though, as I didn’t change anything other than to run another application in web start (which, at any rate, wouldn’t explain why its now also working on other machines)… must be gremlins in the internet. I’ll post here again if it reoccurs…