0 Replies Latest reply on Feb 24, 2003 11:44 PM by Suraj Amin

    WebStart d/l servlet doesn't work in a war file but works wh

    Suraj Amin Newbie

      Hi,

      I have made a Java WebStart download servlet based webapp archive due to its obvious advantages(http://java.sun.com/products/javawebstart/1.2/docs/downloadservletguide.html).

      When I deploy the war file in tomcat it works perfectly fine. But when I deploy it in JBoss (w/ bundled Tomcat) it fails when I give a request for the JNLP file. Which is when the JNLPDownloadServlet tries to service the request.
      Following is the stack trace I get on the JBoss console:
      ===========================================================
      10:03:18,468 ERROR [Engine] StandardWrapperValve[JnlpDownloadServlet]: Servlet.service() for servlet JnlpDownloadServlet threw exception
      java.lang.NullPointerException
      at java.io.File.(File.java:180)
      at com.sun.javaws.servlet.DownloadRequest.(DownloadRequest.java:62)
      at com.sun.javaws.servlet.JnlpDownloadServlet.handleRequest(JnlpDownloadServlet.java:94)
      at com.sun.javaws.servlet.JnlpDownloadServlet.doGet(JnlpDownloadServlet.java:86)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
      at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
      at java.lang.Thread.run(Thread.java:536)
      ===========================================================

      Now comes the strange part - When I exploded the war into a filename.war directory it works!!!

      The reason I made the web start easy deployment war was to have the facility to distribute it without any hassles of configuration. Now I have to tell the users to explode in a directory with a .war postfix, etc.

      Is there a way to tell JBoss to extract the war automatically the way Tomcat does? Or is there a solution to my above mentioned problem.


      --
      Regards,
      Suraj Amin

      Homepage: http://www.geocities.com/suraj_amin/

      /* Love your enemy - it'll drive him nuts. */