Upgrade to 1.6.0_14 causing Webstart launched application to fail
843802Jun 5 2009 — edited Jun 15 2009Hi, I am looking for a little help with changes made to Webstart and JNLP with update 14 for 1.6. I have an application that is packaged within a war and distributed to webserver to be launched with webstart. It has been working for 3 years without change (various versions of Java from 1.5 - 1.6.0_13) until just recently...
Stack Trace received when trying to run the app:
java.lang.SecurityException: class "com.cu.ajent.logger.AbstractAjentLogger"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(Unknown Source)
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at com.cu.ajent.client.gui.core.MainWindow.main(MainWindow.java:287)
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 com.sun.javaws.Launcher.executeApplication(Unknown Source)
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
The funny thing is, this particular class only exists in one jar file with that package name and it is signed. I am wondering if this is a red herring error or if I am just completely missing something.
JNLP File that does not work with update 14 ONLY (all other versions of 5 and 6 work):
Notes: All jar files that are pulled through this descriptor AND the 2 extension JNLP files are from the same "signed" directory and are all signed by the same certificate at build time
<jnlp spec="1.0+" codebase="http://jeffl:8001/Ajility/" href="http://jeffl:8001/Ajility/Ajility.jnlp">
<information>
<title>Ajility Client</title>
<vendor>Columbia Ultimate</vendor>
<homepage href="http://jeffl:8001/Ajility/index.html"/>
<description>Ajility Client Installation with Java Web Start</description>
<description kind="short">Ajility Client</description>
<icon href="http://jeffl:8001/Ajility/cu/images/Ajility_logo.jpg" kind="default"/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always"/>
<resources>
<java version="1.6"/>
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/>
<property name="java.naming.provider.url" value="t3://jeffl:8001"/>
<property name="java.security.auth.login.config" value="http://jeffl:8001/Ajility/cu/properties/jaas_client.conf"/>
<property name="appserver.connector.class" value="com.cu.ajility.appserver.weblogic.WebLogicConnector"/>
<jar href="http://jeffl:8001/Ajility/cu/lib/signed/AjilityGUI.jar" download="eager" main="false"/>
<extension href="http://jeffl:8001/Ajility/JNLP/signed_client_libs.jnlp" name="Ajility_lib"/>
<extension href="http://jeffl:8001/Ajility/JNLP/signed_wls_libs.jnlp" name="wls_lib"/>
<nativelib href="http://jeffl:8001/Ajility/cu/lib/swt-win32-dll.jar" download="eager" main="false"/>
</resources>
<application-desc/>
</jnlp>
Here is the version of the JNLP file that works ONLY with update 14 (fails on all other versions of java 5 and 6)
Notes: The ONLY jar files that are actually signed are the 2 that are referenced in this main JNLP file. None of the extension jars are signed.
<jnlp spec="1.0+" codebase="http://jeffl:8001/Ajility/" href="http://jeffl:8001/Ajility/Ajility.jnlp">
<information>
<title>Ajility Client</title>
<vendor>Columbia Ultimate</vendor>
<homepage href="http://jeffl:8001/Ajility/index.html"/>
<description>Ajility Client Installation with Java Web Start</description>
<description kind="short">Ajility Client</description>
<icon href="http://jeffl:8001/Ajility/cu/images/Ajility_logo.jpg" kind="default"/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always"/>
<resources>
<java version="1.6"/>
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/>
<property name="java.naming.provider.url" value="t3://jeffl:8001"/>
<property name="java.security.auth.login.config" value="http://jeffl:8001/Ajility/cu/properties/jaas_client.conf"/>
<property name="appserver.connector.class" value="com.cu.ajility.appserver.weblogic.WebLogicConnector"/>
<jar href="http://jeffl:8001/Ajility/cu/lib/AjilityGUI.jar" download="eager" main="false"/>
<extension href="http://jeffl:8001/Ajility/JNLP/client_libs.jnlp" name="Ajility_lib"/>
<extension href="http://jeffl:8001/Ajility/JNLP/wls_libs.jnlp" name="wls_lib"/>
<nativelib href="http://jeffl:8001/Ajility/cu/lib/swt-win32-dll.jar" download="eager" main="false"/>
</resources>
<application-desc/>
</jnlp>
Can anyone give me an idea or a place to start?