Question about version based downloads

How does the jnlp-servlet know where different versions of a jar are? Does it look through the entire web directory for version.xml files and keeps a list? I am asking because I don't really understand what steps would be involved when I needed to create an update to my application that was previously deployed with jnlp.
If someone could just explain how they would setup an update using the following scenario. I have an application with two jar files (one.jar and two.jar). There is a new release of my software and only the two.jar had changes. What would my old jnlp file look like and what would the new jnlp file look like? What would the directory structure look like now that I need to maintain the old two.jar around for incremental updating (i.e. jarDiff)?
Lance

see:
http://java.sun.com/products/javawebstart/1.2/docs/downloadservletguide.html
if all resources are the for the same os, arch, and locale, you would put them on the web as
<codebase>/one__V1.0.jar
<codebase>/two__V1.0.jar
<codebase>/two__V1.1.jar
old jnlp file would have:
<jar href="one.jar" version-id="1.0"/>
<jar href="two.jar" version-id="1.0"/>
updated version jnlp file would have:
<jar href="one.jar" version-id="1.0"/>
<jar href="two.jar" version-id="1.1"/>
/dietz

Similar Messages

  • Version Based Downloading w/JBoss Missing Version Field....

    Here we go again, version based downloading difficulties.
    I cannot get version based downloading to work using the version.xml file or using file based versioning.
    My environment is
    JBoss 4.0.3 SP1 (whatever version of tomcat container this contains)
    JRE 1.5.0_06
    I have a .ear file which contains a .war file which contains the appropriate folder format and loose application jars, html, jnlp, etc., as described in the "Packaging JNLP Applications in a Web Archive" document.
    My web.xml file looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
      <display-name>TotalZilla</display-name>
      <description> TotalVU application </description>
       <servlet>
          <servlet-name>JnlpDownloadServlet</servlet-name>
          <servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
               <init-param>
                  <param-name>logLevel</param-name>
                  <param-value>DEBUG</param-value>
               </init-param>
               <init-param>
                  <param-name>logPath</param-name>
                  <param-value>jnlpdownloadservlet.log</param-value>
               </init-param>     
       </servlet>
          <servlet-mapping>
         <servlet-name>JnlpDownloadServlet</servlet-name>
         <url-pattern>*.jnlp</url-pattern>
       </servlet-mapping>
      </web-app>
    ]NOTE: changing the <url-pattern> value to anything but *.jnlp causes JBoss to throw an exception during application deployment[i]
    My version.xml file looks like this:
    I believe this to be the culprit but I am at a loss as to why.
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp-versions>
          <resource>
             <pattern>
               <name>utilities.jar</name>
                <version-id>1.0</version-id>
             </pattern>
             <file>utilities.jar</file>
          </resource>
          <resource>
             <pattern>
               <name>totalvu.jar</name>
                <version-id>2.0</version-id>
             </pattern>
             <file>totalvu.jar</file>
          </resource>     
          <resource>
             <pattern>
               <name>images.jar</name>
                <version-id>1.0</version-id>
             </pattern>
             <file>images.jar</file>
          </resource>      
          <resource>
             <pattern>
               <name>common.jar</name>
                <version-id>1.0</version-id>
             </pattern>
             <file>common.jar</file>
          </resource>     
       </jnlp-versions>
    My jnlp file looks like this:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp
      spec="1.0+"
      codebase="$$codebase"
      href="$$name" context="$$context">
      <information>
        <title>Total VU Application</title>
        <vendor>Perimeter Aquisition Corp.</vendor>
        <homepage href="docs/totalvu.html"/>
        <description>TotalVU application from Perimeter</description>
        <description kind="short">The perfect application.</description>
        <offline-allowed/>
         <shortcut online="false">
          <desktop/>
          <menu submenu="Perimeter - TotalVU"/>
        </shortcut>
      </information>
       <security>
          <all-permissions/>
      </security>
      <resources>
         <j2se version="1.5.0+"/>
        <jar href="totalvu.jar" version="1.0+"/>
        <jar href="utilities.jar" version="1.0"/>
        <jar href="common.jar" version="1.0"/>
        <jar href="images.jar" version="1.0"/>
        <jar href="jlfgr-1_0.jar"/>
        <jar href="jboss-j2ee.jar"/>  
        <jar href="jnpserver.jar"/>
        <jar href="jboss-common-client.jar"/>
        <jar href="jbossmq.jar"/>
        <jar href="concurrent.jar"/>
        <jar href="swing-worker.jar"/>
        <jar href="log4j.jar"/>   
        <extension name="Sun Signed Jars" href="sunsignedjars.jnlp"/>
      </resources>
      <application-desc main-class="com.perimeter.totalvu.framework.TotalVU"/>
    </jnlp>
    The other jnlp file (temporary) which contains a version of activation.jar signed by sun looks like this:
    <?xml version="1.0" encoding="utf-8"?>
        <jnlp spec="1.0+"
          codebase="$$codebase"
          href="$$name"
          context="$$context">
        <information>
            <title>SunSignedJars</title>
            <vendor>Sun Microsystems, Inc.</vendor>
            <description>Jars signed by Sun Microsystems</description>
        </information>
        <security>
          <all-permissions/>
        </security>
        <resources>
            <jar href="activation.jar"/>
        </resources>
       <component-desc>
       </component-desc>
    </jnlp>
    My war file (which is in an ear file) has this format:
    META-INF\MANIFEST.MF
    WEB-INF\lib\jnlp-servlet.jar
    WEB-INF\lib\jardiff.jar
    WEB-INF\lib\jnlp.jar
    version.xml
    *.jar
    *.jnlp
    *.html
    This configuration spits out the famous "Missing version field from server....." that I have seen many times in this forum. The download servlet is getting executed because I am getting a log file generated every time. Debug is the only value that will put out a log. The log output looks like this:
    JnlpDownloadServlet(3): Request: /totalvu/totalvu.jnlp
    JnlpDownloadServlet(3): User-Agent: JNLP/1.5 javaws/1.5.0_06 (b05) J2SE/1.5.0_06
    JnlpDownloadServlet(4): DownloadRequest[path=/totalvu.jnlp isPlatformRequest=false]
    JnlpDownloadServlet(4): Basic Protocol lookup
    JnlpDownloadServlet(4): JnlpResource: JnlpResource[WAR Path: /totalvu.jnlp lastModified=Mon Dec 05 11:17:46 EST 2005]]
    JnlpDownloadServlet(3): Resource returned: /totalvu.jnlp
    JnlpDownloadServlet(4): SupportQuery in Href: true
    JnlpDownloadServlet(4): lastModified: 1133799466000 Mon Dec 05 11:17:46 EST 2005
    JnlpDownloadServlet(3): Request: /totalvu/sunsignedjars.jnlp
    JnlpDownloadServlet(3): User-Agent: JNLP/1.5 javaws/1.5.0_06 (b05) J2SE/1.5.0_06
    JnlpDownloadServlet(4): DownloadRequest[path=/sunsignedjars.jnlp isPlatformRequest=false]
    JnlpDownloadServlet(4): Basic Protocol lookup
    JnlpDownloadServlet(4): JnlpResource: JnlpResource[WAR Path: /sunsignedjars.jnlp lastModified=Mon Dec 05 10:00:20 EST 2005]]
    JnlpDownloadServlet(3): Resource returned: /sunsignedjars.jnlp
    JnlpDownloadServlet(4): SupportQuery in Href: true
    JnlpDownloadServlet(4): lastModified: 1133794820000 Mon Dec 05 10:00:20 EST 2005If I remove the version= tag from the main jnlp file, everything loads fine, but there is no versioning. I have also tried to remove the version.xml file from the package and change my jar files to use file based versioning, but that didn't work either. I rebuilt my jar files with the __V1.0 extension and the complaint was that it couldn't load the resource totalvu.jar. Well, ya, it is now named totalvu__V1.0.jar! Again, versioning is being ignored. The double underscore and V was not recognized as anything special.
    The servlet is running long enough to spit out a log file, no errors. It looks like it succesfully processed the jnlp files, but there is no indication of any versioning.
    Doe the jnlp.jar and jardiff.jar files need to be included in the lib folder in the .war file? I am only including the jnlp-servlet.jar. They were not referenced in the example war file in the documentation, but I have seen them referenced in older doc for other app servers. I did try including them, but it made no difference of course. Guess this question is just a housekeeping question.
    Does anyone have any insight on this problem?
    I am at the point where I think I would like to get the source and debug through it to see what is going on, but that should be unecessary.

    Thanks. I had the same problem.
    As danrak suggests, just add this to your web.xml file to parse .jar and/or .zip file extensions:
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <url-pattern>*.zip</url-pattern>
    </servlet-mapping>          
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <url-pattern>*.jar</url-pattern>
    </servlet-mapping>

  • Javawebstart: Version based download.

    Hi,
    Anyone has idea about implementing the jnlp version based download.
    We are developing a webstart application, it has around 30 jar files in the jnlp. so every time when we deploy a new version of application, for the first time when we launch the application the time taken is around 30 mins, the further access to jnlp is not a problem coz the applicaiton is getting launched from the local cache.
    Size of the total jar files is around 50MB.
    So for increasing the download speed we are now using the pack200 compression. So now the download time is decreased a bit its around 10-15 mins.
    But i feel if we use version based download, the jar files that were changed in the new version of the application will only be downloaded when we launch the application, the download time will be very less coz it will be downloading only the changed jars.
    as the application is been accessed from remote locations we need to go for the version based download.
    I once tried the the version based download by manually creating the jnlp file and versioning the jar files manually. it worked fine, but this cannot be done everytime. We deploy a new version of the application every week.
    Is there any way that we can automatically build the jnlp file and all the jar files with version, so that we can use version based download.
    Please let me know if any one (ANT task or maven or any properatory tasks .) providing support for building the webstart project automatically with version based download.
    Thanks
    Thiru.

    Hi Roland,
    I think version-based download has nothing to
    do with WAR-files.
    Your servlet container (e.g. Tomcat) only extracts
    Your war file on startup.
    Regards,
    Mathias

  • Version Based Download Problems

    Hi All
    Java WebStart is indeed the best java based client installer software ever made. It works really good(even better than Weblogic Zac).
    I started using this software about 1 week back and am really impressed by it. I was previously a great admirer of Weblogic ZAC.
    I was able to download my jars (w/o version id) from the webserver on to my client machine.
    However i have certain problems (confusions) regarding version based downloads.
    1) do i need a version.xml for enabling version based download or will the version tag in the jnlp file will solve the purpose.
    2) Is there any naming convention for the jar file ex: abc_V1.0.jar, abc_V1.1.jar or simply abc.jar.
    If it is abc.jar then how can i put multiple version of the same jar files on the webserver.
    3) How does the jardiff funda works.
    I am listing my jnlp and xml files
    jnlp file:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for REVERA Application -->
    <jnlp spec="1.0+" codebase="$$codebase">
    <information>
    <title>REVERA</title>
    <vendor>Kale Consultants Ltd.</vendor>
    <homepage href="../index.html"/>
    <description>REVERA 7.0</description>
    <description kind="short"></description>
    <icon href="images/REVERALOGO.gif"/>
    <offline-allowed/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.3"/>
    <jar href="revera.jar" main="true" download="eager"/>
    <jar href="lib/UILibrary.jar" download="eager"/>
    <jar href="lib/jacob.jar" download="lazy"/>
    <jar href="lib/jaxp.jar" download="lazy"/>
    <jar href="lib/crimson.jar" download="lazy"/>
    <jar href="lib/xalan.jar" download="lazy"/>
    <jar href="lib/jh.jar" part="javahelp" download="lazy"/>
    <jar href="lib/jboss.jar" download="lazy"/>
    <jar href="lib/jboss-j2ee.jar" download="lazy"/>
    <jar href="lib/jnp-client.jar" download="lazy"/>
    <jar href="lib/jboss-client.jar" download="lazy"/>
    <jar href="lib/jbossmq-client.jar" download="lazy"/>
    <jar href="lib/log4j.jar" download="lazy"/>
    <jar href="lib/oswego-concurrent.jar" download="lazy"/>
    <jar href="lib/wl.jar" download="lazy"/>
    <jar href="lib/ij.jar" download="lazy"/>
    <jar href="lib/jsse.jar" download="lazy"/>
    <jar href="lib/jcert.jar" download="lazy"/>
    <jar href="lib/jnet.jar" download="lazy"/>
    <jar href="lib/j2ee.jar" download="lazy"/>
    <jar href="lib/jaxb-rt-1.0-ea.jar" download="lazy"/>
    <jar href="lib/jaxb-xjc-1.0-ea.jar" download="lazy"/>
    <jar href="lib/classes12_01.zip" download="lazy"/>
    </resources>
    <application-desc main-class="jpraxisapp.uiservices.common.applicationframework.PraxisApp"/>
    </jnlp>
    version.xml
    <?xml version="1.0"?>
    <jnlp-versions>
    <resource>
    <pattern>
    <name>revera.jar</name>
    <version-id>1.0</version-id>
    </pattern>
    <file>revera.jar</file>
    <pattern>
    <name>UILibrary.jar</name>
    <version-id>1.0</version-id>
    </pattern>
    <file>UILibrary.jar</file>
    </resource>
    </jnlp-versions>
    web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
    <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>/app/*</url-pattern>
    </servlet-mapping>
    <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-java-jnlp-file</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>jardiff</extension>
    <mime-type>application/x-java-archive-diff</mime-type>
    </mime-mapping>
    </web-app>
    Thanks :-)
    Robin Paul

    In order to use the version based protocol, you need to run a servlet on the web-server (such as
    the JNLPDownloadServlet included in the developers pack. The naming convension is then up
    to the servlet. The JNLPDownloadServlet uses the abc_V1.0.jar convension, and also
    generates jardiff files dynamically.
    /Andy

  • Version based download problems on commercial deployment

    Hi,
    Now I'm no IT donkey but this is really annoying. We're a small startup company specialising in Java development for mapping applications (GIS). We've chosen Java Web Start as a means of deploying our product (yes a commercial implementation). When we first used Web Start our test deployments worked great, so we shelved things until later. Now we're about to hit the streets we need to use the version based download, we assumed this would just be a simple addition to the jnlp file plus the addition of version.xml ... wrong, I've now had 3 consecutive days trying to find a solution, no luck, even after reading over 400 forum pages with 'version' in them!!! If I take the version tag off its works!! I've also tried using viewer__V1.0.jar still the same.
    We we're due to send out beta version to a number of select customers yesterday, but unfortunately we cannot get the Web Start working with version based download, so we can't. As we're a small company we have a lot resting on this deployment and we really need some help. Here's all the details if anybody can help I'd be very very grateful.
    Thanks in advance
    Ian
    =======================
    Snowflake Software Ltd
    tel : +44 (0) 23 8030 2036
    http://www.snowflakesoft.co.uk
    =======================
    Our application, if both obsfucated and digitally signed
    My development machine runs Windows 2000 sp2, sdk1.3, and Tomcat 3.3 (I've tried 3.2* same results)
    Directory structure on Tomcat
    our webapp is called viewer this contains
    index.htm
    /app/version.xml
    /app/viewer.jnlp
    /app/viewer.jar
    /WEB-INF/web.xml
    /WEB-INF/lib/jnlp-servlet
    /WEB-INF/lib/jaxp.jar
    /WEB-INF/lib/parser.jar
    viewer.jnlp is
    TS: 2001-11-22 12:28:05
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="$$codebase" href="$$name">
    <information>
    <title>Snowflake Map Viewer</title>
    <vendor>Snowflake Software Ltd.</vendor>
    <description>A Java based map viewer</description>
    <homepage href="http://www.snowflakesoft.co.uk"/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.3+" />
    <jar href="viewer.jar" version="1.0"/>
    </resources>
    <application-desc main-class="uk.co.snowflakesoft.jme.application.Viewer"/>
    </jnlp>
    version.xml is
    <jnlp-versions>
    <resource>
    <pattern>
    <name>viewer.jar</name>
    <version-id>1.0</version-id>
    </pattern>
    <file>viewer.jar</file>
    </resource>
    </jnlp-versions>
    web.xml is
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
    <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>/app/*</url-pattern>
    </servlet-mapping>
    <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-java-jnlp-file</mime-type>
    </mime-mapping>
    <mime-mapping>
    <extension>jardiff</extension>
    <mime-type>application/x-java-archive-diff</mime-type>
    </mime-mapping>
    </web-app>
    If you've got this far ... thanks ... any ideas?

    Apologies,
    Its been a long week ... thanks Mathias, the error message / exception would help. Basically if I add the version tag I get the following error and exception. Unfortunately its an 'unknown' error which make things difficult. If I take off the version tag it works
    Error from the General Tab of the Java Web Start -> An error occurred while launching/running the application.
    Title: Snowflake Map Viewer
    Vendor: Snowflake Software Ltd.
    Category: Download Error
    Error Code 99 (Unknown error) returned from server when accessing resource: (http://localhost:8080/viewer/app/viewer.jar, 1.0)
    ExceptionJNLPException[category: Download Error : Exception: null : LaunchDesc: null ]
    at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
    at com.sun.javaws.cache.DownloadProtocol.getDownloadSize(Unknown Source)
    at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
    at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
    at com.sun.javaws.Launcher.downloadResources(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(Thread.java:484)

  • Can't get version based downloads to work

    I am new to JNLP and trying to get version based downloads to work. I have read everything I can find, but I still seem to be missing something. My setup:
    Tomcat 4.1.18 (running in JDK 1.4.0)
    Java WebStart 1.2
    Win 2k
    files in .war
    -launch.jnlp
    -+1.0
    |-testapp.jar
    |-version.xml
    -+images
    |-Save.gif
    -+META-INF
    |-MANIFEST.MF
    -+WEB-INF
    |-+lib
    | |-jnlp-servlet.jar
    |-web.xmllaunch.jnlp
    TS: 2002-04-23 19:21:05
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp codebase="$$codebase" href="$$name">
       <information>
          <title>ljtest 1</title>
          <vendor>Lance</vendor>
          <description>just an example</description>
          <icon href="images/Save.gif"/>
       </information>
       <resources>
          <j2se version="1.2+"/>
          <jar href="1.0/testapp.jar" version="1.0"/>
       </resources>
       <application-desc main-class="Main"/>
    </jnlp>version.xml
    <jnlp-versions>
       <resource>
          <pattern>
             <name>testapp.jar</name>
             <version-id>1.0</version-id>
          </pattern>
          <file>testapp.jar</file>
       </resource>
    </jnlp-versions>web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
        "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
      <web-app>
         <servlet>
            <servlet-name>JnlpDownloadServlet</servlet-name>
            <servlet-class>com.sun.javaws.servlet.JnlpDownloadServlet</servlet-class>
            <init-param>
               <param-name>logLevel</param-name>
               <param-value>DEBUG</param-value>
            </init-param>
         </servlet>
         <servlet-mapping>
            <servlet-name>JnlpDownloadServlet</servlet-name>
            <url-pattern>*.jnlp</url-pattern>
         </servlet-mapping>
      </web-app>Things I have discovered (possibly in error?):
    1) I do not need to include the jaxp.jar and parser.jar files because I am using JDK 1.4
    2) I do not need to change my testapp.jar to testapp_V1.0.jar because I have included the the version.xml file in the 1.0 directory
    I keep getting the following error in WebStart when I loadup the jnlp:
    JNLPException[category: Download Error : Exception: null : LaunchDesc: null ]
         at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
         at com.sun.javaws.cache.DownloadProtocol.getDownloadSize(Unknown Source)I can get everything to work without version based downloads. Does anyone have any clue what I am doing wrong?
    Lance

    I found my own error. After loading up sun's reference implementation server in NetBean's debugger I noticed that it was only handling .jnlp files. Going back to the "Packaging JNLP Applications in a Web Archive" document I found my mistake. My web.xml files should have looked like this.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
        "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
      <web-app>
         <servlet>
            <servlet-name>JnlpDownloadServlet</servlet-name>
            <servlet-class>com.sun.javaws.servlet.JnlpDownloadServlet</servlet-class>
            <init-param>
               <param-name>logLevel</param-name>
               <param-value>DEBUG</param-value>
            </init-param>
         </servlet>
         <servlet-mapping>
            <servlet-name>JnlpDownloadServlet</servlet-name>
            <url-pattern>*</url-pattern>
         </servlet-mapping>
      </web-app>The difference being the <url-pattern> tag. It now tells the web server to handle all files not just .jnlp.
    This allowed me to download version based jnlp entries. I still can't get jarDiff things to work, but I will keep banging my head against the wall till I figure that out.
    Lance

  • Anyonme got version-based download working ?

    I've scanned all the messages here as well as on vamp, but nowhere do I see an anwser on how to get versioning working.
    My test app is a straight forward one.
    Below are the jnlp and version.xml.
    As long as the attribute [version="1.1"] is included I get the;
    Missing version field in response from server when accessing resource: (http://localhost/Webstart/app/uitrij.jar, 1.1)
    error. When I strip only that attribute the app loads just fine.
    The excpetion that results in the above mentioned error is also listed below.
    Anyone got any ideas ?
    Anne.
    launch.jnlp:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp codebase="http://localhost/Webstart/app/" href="launch.jnlp">
    <information>
    <title>VSP Uitrij Example 1</title>
    <vendor>Finalist IT</vendor>
    <description>Example of Webstart uitrij app in war</description>
    </information>
    <resources>
    <j2se version="1.2+"/>
    <jar href="uitrij.jar" version="1.1"/>
    </resources>
    <application-desc/>
    </jnlp>
    version.xml:
    <jnlp-versions>
    <resource>
    <pattern>
    <name>uitrij.jar</name>
    <version-id>1.1</version-id>
    </pattern>
    <file>uitrij.jar</file>
    </resource>
    </jnlp-versions>
    Java Webstart Download Error -Exception tab:
    JNLPException[category: Download Error : Exception: null : LaunchDesc: null ]
    at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
    at com.sun.javaws.cache.DownloadProtocol.getDownloadSize(Unknown Source)
    at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
    at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
    at com.sun.javaws.Launcher.downloadResources(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(Thread.java:479)

    Hi Marc,
    My impression was that the JnlpDownloadServlet wasOh sorry. I did not recognize that you already used
    the download servlet.Well, you were partially right I think :)
    Problem is that I've been combining two test at the same time.
    In one test I have all the files in a directory(-structure) on a (local) webserver.
    This allows me to do the simple tests.
    And then I create a .war and deploy that to a (local) application server (HP's Bluestone 7.3 in this case).
    The versioning would only work when doing the app server test, as the 'standalone' test has no back-end to interpret the request for a version-specific file (jar), as you pointed out.
    As the deployment using a .war file (still) doesn't seem to work because of the .getRealPath() problem (see http://developer.java.sun.com/developer/bugParade/bugs/4474021.html) I don't even get to versioning in that test.
    So if I want versioning I have a couple of options I guess;
    - Try the jar as provided by BEA as mentioned in
    http://forum.java.sun.com/thread.jsp?forum=38&thread=176243
    If this indeed works (haven't tried it yet), my guess is they 'fixed' the getRealPath() problem(s) themselves. (It doesn't seem like it's fixed in the current jnlpDownloadServlet )
    - Set up the app server as a straight-forward servlet-runner to run the jnlpDownloadServlet without using the std deployment.
    I'd prefer the 1st option to work, as I'd like to be able to deploy using a .WAR.
    The latter would basically come down to what you called 'installing a helper'.
    As far as I understand, you switch from basic to
    version-based
    download by adding the version="x.y" attribute to the
    jar element.And add the version.xml which links the versions to actual files (jars), IIRC.
    What happens next, complete download of the new
    version or the download of a difference jar is up to the jnlpI'm not quite clear on when the diff is done and when a complete file/jar is downloaded, but that at the moment is a moot point for me :)
    My guess is that you did not setup the servlet
    properly or that it doesn't work for some other reason.Several reasons, as mentioned above :)
    The only way to find out is to have a look at the HTTP
    communication between jnlp client and servlet that happens during
    your test.
    Do you know how to do that?Well, one thing I've been trying to get to work is the logging of the jnlpDownloadServlet.
    But even in DEBUG mode it doesn't really give me much information.
    I've also got Webstart's logging on, but again the information in it's logfile is not really informative.
    I've also used Sam Spade to see what responses I get from specific requests.
    Hmm, just thought of something; I haven't looked at the logfile of the web-server yet.
    Not that I think it'll help me much, but might be of interest to look at it all the same.
    <aside>
    Interestingly enough SamSpade gave me two different results when requesting the .jnlp file from the .WAR.
    Using a HTTP 1.0 it gave me a 404
    Using HTTP 1.1 it gave me the jnlp file.
    </aside>
    FWIW; I'm currently leaning towards phasing the implementation of Webstart.
    1st as webserver based solution with only Basic versioning. (This works, that I know for sure :)
    Later on as versioned-download using .WAR deployment.
    Dave,
    I don't have my web.xml here, but yes both .jnlp as /app/ are mapped to the jnlpDownloadServlet. That part of it works. (When doing the app server test that is; no servlet is used in the standalone test).
    Anyway, thanks again for your comments.
    If nothing else they at least made me get my thoughts a bit more straight :)
    Anne.

  • CD-Install and version based download protocol

    I am trying to create a cd-install for an app. using the -import -codebase features
    of javaws. This works as long as I do not have any version information within the
    cd based jnlp and the resources.
    If a specify a version with a resource (e.g. a jar) I get the following exception from
    javaws:
    java.io.FileNotFoundException: c:\cd\spirit_core_client.jar?version-id=0.4.5.0 (Die Syntax f�r den Dateinamen, Verzeichnisnamen oder die Datentr�gerbezeichnung ist falsch)
         at java.io.FileInputStream.open(Native Method)
         at java.io.FileInputStream.<init>(Unknown Source)
         at java.io.FileInputStream.<init>(Unknown Source)
         at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
         at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
         at com.sun.javaws.net.BasicNetworkLayer.doHeadRequest(Unknown Source)
         at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
         at com.sun.javaws.cache.DownloadProtocol.getDownloadSize(Unknown Source)
         at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
         at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
         at com.sun.javaws.Launcher.downloadResources(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)
    It seems that javaws tries to do a file request with a url query string for the version.
    This will work with the JnlpDownloadServlet but not for a file request.
    What do I have to do?
    If I can not specify version information wouldn�t that make the differential (JarDiff)
    download impossible? Or can I than only use a timestamp (last-modified) based
    download?

    I filed a bug ion this. The CD install is implemented by substituting codebases, if the new codebase dosn't implement the version based download protocol, import won't work. The file protocol used when importing from CD cannot implement this. There should be a simple convension to allow versioned requests from file protocols to assume the response-version is equal to the request version (assuming no wildcarding is uded in the request-version).
    /Andy

  • Version-based download without WAR file?

    Hi,
    is it possible to make a version-based download without using WAR files?
    Thanks in advance
    Roland

    Hi Roland,
    I think version-based download has nothing to
    do with WAR-files.
    Your servlet container (e.g. Tomcat) only extracts
    Your war file on startup.
    Regards,
    Mathias

  • Update prompt not working with version based download

    Hello All,
    I have a JWS application and it is deployed on my local server. I want my users to get the Update prompt ( There is an optional update, Do you download it ) when ever there is an update and I am using the version based download(version.xml) while updating my application(Jardiff). The problem here is when i change the version number from 1.1 to 1.2 in the jnlp on the server. (EX: <jar href="application.jar" version="1.2" main="true"/> ) . When the user starts the application from desktop shortcut the Jardiff gets downloaded and patched but there is no update prompt.
    The problem here is the JNLP gets refreshed and even though i have the policy = "prompt-update" in update tag( <update check="timeout" policy="prompt-update"> ), i am not getting the update prompt. The update prompt works fine in basic download.
    I am facing this problem from quite a long time. I hope some one has got an answer for this.
    Thanks and regards,
    Anjali

    Hello Andrew,
    Thanks for ur reply.
    This is the JNLP file and version.xml, which i am using: ( I am using the JNLPDownloadServlet)
    launch.jnlp:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN">
    <jnlp spec="6.0+" codebase="$$codebase" href="$$name">
    <information>
            <title>Dummy Product </title>
            <vendor>Dummy Product</vendor>
         <icon kind="shortcut" href="images/image.gif"/>
         <icon kind="splash" href="images/splash.png"/>
            <homepage href="$$context"/>
            <description kind="one-line">Dummy Product</description>
            <offline-allowed/>
         <shortcut online="true">
              <!-- create desktop shortcut -->
              <desktop/>
              <menu submenu="Dummy -product"/>
         </shortcut>
    </information>
    <update check="background" policy="prompt-update"/>
       <security>
        <all-permissions/>
       </security>
       <resources>     
            <java version="1.6+" />
         <java href="http://java.sun.com/products/autodl/javase" version="1.6+"/>
            <jar href="applicationV.jar"  main="true" download="eager" version="1.1"/>
         <jar href="abc.jar"  download="eager"/>
         <jar href="cab.jar"  download="eager"/>
         <jar href="app.jar" download="eager"/>
         <jar href="app1.jar"  download="eager"/>
         <jar href="app2.jar"  download="eager"/>
         <nativelib href="app3.jar" download="eager"/>     
       </resources>
       <application-desc main-class="Mainfile">
         <argument>arg1</argument>
         <argument>arg2</argument>
       </application-desc>
    </jnlp>
    version.xml:
    <jnlp-versions>  
             <resource>
                 <pattern>
                    <name>applicationV.jar</name>
                    <version-id>1.1</version-id>
                 </pattern>
                 <file>application-01_00-us.jar</file>
             </resource>
         <resource>
                  <pattern>
                    <name>applicationV.jar</name>
                    <version-id>1.2</version-id>
                 </pattern>
                 <file>application-02_00-us.jar</file>
             </resource>
    </jnlp-versions>
             Thanks for the support.
    Anjlai

  • Webstart version-based download error

    Hi guys,
    Are there known bugs in Sun's JnlpDownServlet? After installing the JNLP developer pack and configuring the directories in how Sun suggested in http://java.sun.com/products/javawebstart/docs/downloadservletguide.html (but using exploded directory structure instead of a WAR file since I am still in development), I keep getting "Missing version field in response from server when accessing resource: (http://localhost:8080/myApp/foo.jar, 1.1)" for <jar href="foo.jar" version="1.1"/> in foo.jnlp,
    but if I don't use version-based as in <jar href="foo.jar" /> the application is downloaded launched properly.
    What am I missing? Please help..

    JayP,
    I've had this error before when there was a mistake in my JNLP on how I specified the jar name and the version.
    Why don't you post your JNLP so we can take a look.

  • Question about java-based server app frameworks

    Hello, I am working on a Java applet application and would like to choose a Java-based scalable server framework to use within my applcation. I have found a few like xsocket or QuickServer and have a question about other. And, also, which is the one You may advise? Yours sincerely, Slawek

    For online gaming server. I first heard of xsocket and started using this, but have the problem with NAT. I now know that I need to initiate connections from client behind NAT (server has a public IP) and send messages from server to client within the same connection. I am doing this the following way (as shown in examples- below), but it appears that server receives messages, but client doesnt. I dont listen on any ports in client application and just need to take advantage of the connection initiated (information go from client to server properly).
    Server-
    try{ nbc = pool.getNonBlockingConnection(inetAddress, 8090);
    try{ nbc.write("|01|______|02|______|03|______|04|______|05|______|06|______|07|______|08|______|09|______|10|______"); }catch(Exception ee){}
    }catch(java.io.IOException f){}
    Client-
    public boolean onData(INonBlockingConnection nbc) throws IOException,ClosedChannelException,BufferUnderflowException,MaxReadSizeExceededException{
    String x = nbc.readStringByLength(100);
    System.out.println("S >> C = "+x);

  • Another one question about how to download applet (not using external tool)

    Hi
    i write tool for downloading applet on card. I use apdu trace from NXP eclipse plugin as source of information and i read also about cap-file format in Java Card Virtual Machine specification. And i have questions about data transferred by LOAD command.
    As example - from apdu trace i see that transferred data are "C4820E33 DATA1 DATA2". Full length of transferred data is 0x2EE2.
    C4 - OK, this is "Load File Data Block" tag as specified in Global Platform
    820E33 - OK, this length of tag, =0x0E33
    DATA1 - sequence of cap-file components: Header.cap, Directory.cap, Import.cap, Applet.cap, Class.cap, Method.cap, StaticField.cap, ConstantPool.cap, RefLocation.cap. Length of DATA1 is 0x0E33, i.e. DATA1 = 'C4'-tag value.
    DATA2 - sequence of two cap-file components: Descriptor.cap and Debug.cap. These components are out of 'C4'-tag.
    the questions mentioned above... here they are:
    1. Global Platform does not define any data in LOAD command except 'E2' and 'C4' tag. Why DATA2 is transferred out of any tags?
    2. Whether the sequence of cap-file components is important? i.e. Can i load Header.cap, Directory.cap etc. in other order than i see in DATA1 field from apdu-trace?
    3. Debug.cap seems to be optional component. And what about Descriptor.cap component? Need i load it on card?

    666 wrote:
    1. Global Platform does not define any data in LOAD command except 'E2' and 'C4' tag. Why DATA2 is transferred out of any tags?Because the components are either optional or only required when communicating with a JCRE that has debugging capabilities. I assume you ran the project in JCOP Tools in debug mode against the simulator? If you did this against a real card it would fail as it does not have an instrumented JCRE capable of debugging code. You could try running the project as opposed to debugging to see the difference.
    2. Whether the sequence of cap-file components is important? i.e. Can i load Header.cap, Directory.cap etc. in other order than i see in DATA1 field from apdu-trace?Yes it is. It is defined in the JCVM specification available from the Oracle website.
    3. Debug.cap seems to be optional component. And what about Descriptor.cap component? Need i load it on card?No, it is optional and is not referenced by any other CAP file component.
    Cheers,
    Shane

  • Question about versioning (history) in the latest release

    Hallo,
    Some questions:
    1. Will versioning ever be integrated with locked pages, locked scene, colored pages, revision marks functionality etc, so that at a particular moment you can optionally augment the current versioning with the more traditional way of production revision cycles?
    2. If above will not be the case (or is never activated): what currently happens with scene numbers & manual breakdown info that is already added, but than the scene gets deleted.  Is all this info gone (& scenes renumbered).  Can we save a version to keep this info?  Please clarify.
    3. Regarding breakdown of elements: will there be a way that we can visualize breakdown sheets on screen.  It's much easier for me to look at it that way, e.g. the Scenechronize way (I guess I'm old).
    4. Regarding breakdown and making the script 'production ready', will there be a way to combine scenes that belong together and part scenes (that are not in the same shooting location but where the writer chose to combine the action in one scene, eg like telephone conversation etc).
    I guess all my questions boil down to this: will Story also aim to offer serious production breakdown features that could be used by production managers & assistant directors to prep for physical production, or will it mainly be a collaborative writing tool (even if it does allow you to transfer text into On Location shotlists and then eventually into your clips). 
    I guess there's a conceptual difference (at least when talking about narrative film with a lot of cast, locations, props etc): do you support mainly the writing effort and than transfer into a tool like Scenechronize once production starts - or do you go further? For  (corporate) interview type shoots this matters less.
    I would be interested to hear your views on the matter.
    Regards,
    Bavo

    Yes. Versioning will be integrated with locked pages, colored pages but we are not planning to lock scenes yet. We will also show asterix against changed lines in future updates.
    You can always explicitly save a version (file->save as) to mark a checkpoint draft. You can add your own comments while saving this draft so that you can find it later.
    We'd like to support production related features because we want to leverage script metadata for all it can be leveraged for. That said, "full fledged" is a loaded term. We will take small steps and enable workflows related to production as we go along. Dynamic breakdown reports, that can be viewed and edited in Story are on our roadmap.
    --Anubhav

  • Another Question about Certificate-based Authentication

    Hello,
    I was successful in PDC-based authentication, but have the
    requirement to further improve this.
    For this, I have to use the "Match Certificate in LDAP"-feature.
    I have modified a user to include a "userCertificate"-attribute,
    and pointed the parameters to access to the directory server.
    Until now, I had no success.
    In the Logfile "amAuth"-Logfile I can see this message:
    <------------------>8-------------------->8------------------------>
    com.sun.identity.authentication.spi.AuthLoginException: Error in locating registered certificate
    <------------------>8-------------------->8------------------------>
    In the Directory Server log, I can only see a successful bind-request,
    but, interestingly, no search:
    <------------------>8-------------------->8------------------------>
    [28/Sep/2004:10:47:17 +0200] conn=3352 op=-1 msgId=-1 - fd=109 slot=109 LDAP connection from 127.0.0.1 to 127.0.0.1
    [28/Sep/2004:10:47:17 +0200] conn=3352 op=0 msgId=8782 - BIND dn="cn=Directory Manager" method=128 version=2
    [28/Sep/2004:10:47:17 +0200] conn=3352 op=0 msgId=8782 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=directory manager"
    <------------------>8-------------------->8------------------------>
    Anyone successful with this feature?
    Regards,
    Juergen Maihoefner

    Hi there
    I got a couple of doubts about the Certificate Authentication module, maybe you can help!
    First, have you made any documentation on how you made this work ? Is it at all possible to get the source code of the module you have made? I think I'll need to create a costum module aswell because of very specific client requisits.
    My problem ( and I'll be posting a new thread with this, but just in case you have this on your watch list ) is that I need to have both user/password and Cert Based authentication enabled. I'll create a chain with both modules as sufficient. My problem is : the documentation tells me that I need to have the containers (I suspect both the server and the agents ) with SSL enable and (and this is the tricky part) with Client Authentication Enabled . Now my problem is : when on the http listener, I configure it with security and enable that listener with Client Authentication, when I try to access the container on the secure listener I get an error (in firefox) or the browser asks me to select a certificate ( on IE ). When I dont provide a certifica it gives me the same error as firefox.
    Basically, what I believe is happening is that with Client Authentication, the container will always request a certificate from the browser. Which isn't exactly what I want. I need to AM protected resources on this specific realm to allow authentication of a user based on a user/password OR a Certificate.
    Basically what I want to know is : do I need to have Client Authentication Enabled on the http listener ? Did I miss read the documentation? Is there a really good how-to on how to do this ? Can you give me a hand?
    Thanks loads for your help
    Rp

Maybe you are looking for

  • Problem in standard workflow of claims in ESS

    Hi , I am functional consultant and I am facing problem in standard workflow of claims WS18900023 . When approver clicks on approve button it gives message that ' Validation is succesful 'and it does not get approved. When approver clicks on Approve

  • Dev 2000/Dev 6.0 for Linux

    When will we se it? I mean surely Developer 2000 or Developer 6.0 must come in a Linux version? We already have a good and stable X interface, and it does exist for Solaris among others, right? What does Oracle have to say about this? /jan null

  • Do I need to install virus protection software on my MacBook Air?

    Do I need to install virus protection software on my MacBook Air?

  • (PC) iTunes Music Library won't sync with my iPhone 4, not enough space?

    I'm not sure if I've posted this in the right "Community area"?? If I'm in the wrong area, please point me in the right direction. I am getting this Error Message coming up on PC: The iPhone "UserName's iPhone" cannot be synced because there is not e

  • Action "mode" in PSE5

    Is there an "Actions" Palette in Photoshop Elements 5? I purchased this to be able to touch up my underwater photos. A book by a couple specifically mention this but is it only in the full photoshop? Also, I cannot find the Adobe Studio area on the w