Link to home
Start Free TrialLog in
Avatar of gagaliya
gagaliya

asked on

Cant read JNLP file, help!

Hi, this is really driving me crazy.

I migrated an existing jdk 1.4 java webstart app to java 1.6 by changing the compiler etc..to jdk 1.6 and deploying it on weblogic 10.  However when I try to launch the app using webstart via the weblogic server url, it gives the below exception.  The java runtime doesnt even start, it seems as if the jnlp file itself is not found.

When right click on the jnlp link and do save target, it says IE cannot download launch.jnlp from server.

But I verified at least 5 times the deployed war file have the jnlp file, and it is in the correct location. I also verified the web.xml file (which i didnt change) and it has the url pattern correctly.

Anyone know what can possibly causing this?

java.lang.NullPointerException
	at java.io.File.(File.java:222)
	at com.sun.javaws.servlet.DownloadRequest.(DownloadRequest.java:62)
	at com.sun.javaws.servlet.JnlpDownloadServlet.handleRequest(JnlpDownloadServlet.java:91)
	at com.sun.javaws.servlet.JnlpDownloadServlet.doGet(JnlpDownloadServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3590)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
 

Open in new window


web.xml
<web-app>
  <servlet>
     <servlet-name>JnlpDownloadServlet</servlet-name>
     <servlet-class>com.sun.javaws.servlet.JnlpDownloadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>JnlpDownloadServlet</servlet-name>
     <url-pattern>/launch/*</url-pattern>
  </servlet-mapping>
  <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-java-jnlp-file</mime-type>
  </mime-mapping>
</web-app>

Open in new window

Avatar of for_yan
for_yan
Flag of United States of America image

Which minor version of Java 1.6 you installed?

Don't know if it is the same issue but our corporate WebStart apps
are not running with Java 1.6.0_24 but are running with Java 1.6.0_19

Avatar of CEHJ
Is this something we can try?

Test the downloadability of the jnpl through a dumb medium such as wget, or even a raw GET with telnet
Avatar of gagaliya
gagaliya

ASKER

Hi,  after doing a rebuild, redeploy, and clear all cache from java console, the jnlp is able to launch java now ( i am still not sure what the issue was).  But now it's giving another security exception while launching.

I verified weblogic jar is in the right place, and it's signed using a certificate generated from sourceforge's keytool plugin for eclipse.  All the other jars signed using the same seem to be ok except for weblogic.jar.  

Is there a way to just completely disable all this security signing/verification for webstart? it's such a pain in the rear, my app is on our intranet only and has its own security logins. Wasting so much time.

thanks

exception:
com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://someserver/weblogic.jar
	at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Open in new window


wrapper exception:

java.io.IOException: cannot verify signature block file META-INF/EDITOR
	at com.sun.deploy.cache.CacheEntry$9.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.deploy.cache.CacheEntry.writeFileToDisk(Unknown Source)
	at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
	at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
	at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Open in new window

>>http://someserver/weblogic.jar

Again, are you able to download that 'manually'?
Yes i can download it manually via url.  When i switched to use wlsfullclient.jar instead of the existing weblogic.jar from wls81, it worked. But then that created a whole host of other issues with missing classes etc.. as weblogic 10+ split out the weblogic.jar into dozens of separate jars.

ASKER CERTIFIED SOLUTION
Avatar of CEHJ
CEHJ
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
:)