Dynamic JNLP files?

I have a number of small, embedded devices running a Cherokee web server, each with their own IP address and hostname. Each of these devices has a standard image that includes a few applets. Is there a way to make a standard JNLP file that could go in the image but would still work? My concern is that the codebase is going to be different for device...

A way to generate dynamic JNLP's is by using a servlet.
The servlet path is the JNLP target for the client, and the servlet itself outputs the JNLP contents with the JNLP content-type.
Jacco

Similar Messages

  • Jnlpdownloadservlet and dynamic jnlp file

    Problem: we want the version handling (+ jardiff) of JnlpDownLoadServlet, but we also need to construct the jnlp file dynamically (for example: a .jsp file). It seems to me there are two solutions, neither of them good: a) hack the JnlpDownloadServlet (or roll our own), intercepting the jnlp-file-reading code to forward to the jsp page that generates the jnlp xml data and use the generated response as the file contents.
    b) generate each jnlp file dynamically and then store it in a temporary location for the JnlpDownloadServlet to pick up. This entails aging the temporary jnlp files and deleting them so the server doesn't get clogged with dead jnlp files.
    Is there a third possibility? Or something in the pipe for the near future?
    (Note: Web Start Services is not a solution for this task since WSS doesn't support jar versioning, and since the $$properties mechanism does not appear to be ideal for passing a lot of dynamic jnlp information.)
    Thanks in advance for any advice.

    My jsp page actually generates the list of jars for the application. It also passes some info specific to the user session by means of the jnlp file. Since we are doing games, the list of applications keeps growing. By generating the resource elements dynamically for a game, we can reduce maintenance (as opposed to having a large number of jnlp files with mostly duplicate code) -- especially when a version is updated.
    Till we can move to 1.5, I plan to use the temporary file creation method.
    Thanks, --John                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Dynamic JNLP file problem

    Okay this topic can be deleted, I'm not sure how to do it myself.
    The problem wasn't Java related at all.
    Thanks.
    Edited by: Cluber on Sep 12, 2011 5:15 PM

    Okay this topic can be deleted, I'm not sure how to do it myself.
    The problem wasn't Java related at all.
    Thanks.
    Edited by: Cluber on Sep 12, 2011 5:15 PM

  • Download .jnlp file when first time

    Hi Everybody,
    I am new bee for java web start.
    We are having swing application which we want to distribute through Java Web Start. Client can run application through provided web link. we also want to download .jnlp file to the client machine when user clicked the link first time.
    I go through different thread for the above problem in this forum, but though not getting clear idea as in our application, we need to generate dynamic .jnlp file. All solution posted for the above problem assuming that .jnlp file exists at some location, but in our case we have to generate it when user clicked it first time. Any body having some idea ?
    Our second problem is, can it possible that user will run the swing application only when he click the link provided on the web server ? In our case authentication of user is done in our web application and when user will click the provided link user id and other information will be pass to swing application as parameters through .jnlp file. If that application will available offline user can run it through last downloaded .jnlp file without clicking the link , which will be not allowded. Also we are concern about multi user environment, as we are thinking to dynamic generation of .jnlp file , it may possible that other user running the same application noted .jnlp file version difference and will download the .jnlp file of other user ?
    Can any body have any idea, how can we done the above scenario ?
    Thanks in advance,
    Dimpal

    If you upgrade to Java 1.4.2 it will present a dialog asking for desktop
    integration the first time you start the application.
    Maybe that's what you want?

  • Dynamic JNLP and JWS Application Manager

    All,
    I have a Swing application that communicates to the server via Servlets. I have packaged the entire application into a WAR file and I am using JWS to distribute to the users.
    The "main" method of my application accepts two parameters, one of which is dynamic based on information from the web server. To be able to calculate the value of that parameter, I decided to dynamically create and serve my JNLP file through a servlet. The parameter is then passed into the application via the <argument> tag in the served JNLP file.
    That part works great. However, once the application is installed, it doesn't show up in JWS Application Manager. My best guess is because there is not a "physical" JNLP file for reference.
    Can anyone out there confirm or deny my guess? And, more importantly, can anyone give me an idea on how to keep the dynamic JNLP file and get it to install in the JWS Application Manager?
    Thanks!

    Got it fixed. Apparently, the JWS Application Manager "view" setting wasn't correct. Once it was working, the application was showing up fine.

  • Dynamic JNLP causes exception on 1st run after java install

    I have a dynamic JNLP file (php) which runs my software. It works just fine, except for the 1st time it is run after a user has installed Java.
    I get the exception; "The following field was missing from the jnlp file: <jnlp>". When I look at the jnlp code in JWS in the "Launch File" tab of the error message, I see that the JNLP is not there - but the page the user would see if he was not logged into the system (as if JWS has cached the file or something).
    If I close it down, press F5 to refresh, and run it again everything works fine.
    I'm running the dyanmic.jnlp?dummy=randomnumber943934 to prevent caching. In addition, these headers are sent: (php code)
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    // HTTP/1.1
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);
    // HTTP/1.0
    header("Pragma: no-cache");.. so nothing should be cached. But I'm not sure that's where the problem is - cause it only happens the first time after a java install.
    Any clues?

    I think you're dynamicallt created jnlp is invalid in someway; I can use the following without any problems:
    <?php
    header("Content-type: application/x-java-jnlp-file");
    echo "<?xml version=\"1.0\" ?>\n";
    $codebase = trim(stripslashes(urldecode($_REQUEST["codebase"])));
    $href = trim(stripslashes(urldecode($_REQUEST["href"])));
    echo "<jnlp spec=\"1.0+\" codebase=\"$codebase\" href=\"$href\">\n";
    ?>
    </jnlp>
    you should try and test the output of your generated code, something like this should work:
    test.php
    <html>
    <body>
    <textarea rows=20 cols=70>
    <?php
    include 'mydynamicscript.php';
    ?>
    </textarea>
    </body>
    </html>
    The first time a jnlp is called it is downloaded into the browser cache and javaws.exe is executed on it from that location, this in turn downloads the jnlp again from the passed codebase & href attributes into the jws cache. Subsequent calls the jnlp are extracted from the copy in the webstart cache, and often downloaded from the codebase & href attributes when it detects possible changes. In your case these jnlp files seem to differ.
    - Richard

  • Dynamic generation of jnlp file

    I'm dynamically generating a jnlp file using a jsp to pass run-time parameters over to my Java application thusly:
    <%
    response.setContentType("application/x-java-jnlp-file");
    String userName = request.getParameter("username");
    String password = request.getParameter("password");
    String batchId = request.getParameter("batchid");
    out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    out.println("<jnlp ");
    out.println("spec=\"1.0+\" ");
    out.println("codebase=\"http://server/directory\" ");
    out.println("href=\"this jsp file\">");
    ... other jnlp stuff...
    out.println("<application-desc main-class=\"myApp.myClass\">");
    out.println("<argument>" + userName + "</argument>");
    out.println("<argument>" + password + "</argument>");
    out.println("<argument>" + batchId + "</argument>");
    out.println("</application-desc>");
    out.println("</jnlp>");
    And use args[] to attempt to get the passed parameters in the Java application:
    userName = args[0];
    password = args[1];
    batchId = args[2];
    However, they don't seem to be passed over to the application as I get NullPointerExceptions. If I try to trace the state of the arguments by adding:
    FileOutputStream f = new FileOutputStream("w:output.txt");
    BufferedWriter w = new BufferedWriter(new OutputStreamWriter(f, System.getProperty("file.encoding")));
    w.write("userName: " + userName);
    w.write("password: " + password);
    w.write("batchId: " + batchId);
    f.flush();
    f.close();
    The output file is completely empty.
    1. Am I passing the arguments in wrongly?
    2. Why is the output not being written in the file?
    My thanks in advance for any assistance offered.
    Erkton

    Erkton,
    I use a similar approach and it does work. The main gotchas I found were typos. I would suggest temporarily changing the
    response.setContentType("application/x-java-jnlp-file");
    line to
    response.setContentType("text/xml");
    and looking at your JNLP file as XML and verifything that you got everything write. Look for beginning and end tags, stuff like that.
    Once you have it right then switch it back to JNLP.
    One other thing to look out for is Internet Explorer doesn't like jnlp files unless they end with a .jnlp extension. I had to rename my jnlp files to end with .jnlp instead of .jsp for IE to parse them correctly. I don't think thats the issue you are running into, but you may want to look out for it.

  • Dynamically generating the jnlp file

    Hi Experts,
    Im working on a project in which we launch the Eclipse RCP from the web UI (thin client).
    I want to dynamically generate the jnlp file cause I want to pass the session of the user from the web client to RCP.
    So for this i have thought of having a variable let say sessionID ,which will take value of the session
    sum thing like this...
    <application-desc main-class="com.rcp.core.HelloWorld">
    <property name="sessionID" value="$$userSessionId"/>
    </application-desc>
    But im not able to figure out how i will populate the sessionID variable.
    which class should be responsible for doing this?
    whether that class will be in the RCP code or in the Web code...i guess it is in the web code?
    Please if u can clarify these doubts then it will be great.
    Thanks
    ved

    usually you would use jsp or a servlet to generate the jnlp file.
    If you extend the JnlpDownloadServlet (found in the sample directory in the JDK) you can generate the session id.
    /Andy

  • Always prompted to save JNLP file

    Hello! We have a simple servlet that basically just queries a few things off of the HttpServletRequest and spits back a dynamically generated JNLP file. For some reason, when we were running with Tomcat 4.0.6 this worked fine, but with the upgrade to Tomcat 4.1.29 it does not. IE always prompts to open or save the file - it never just launches JWS automatically anymore.
    Any suggestions on what we can fix? I'll put the interesting parts of the servlet below.
    Thanks in advance!
    -Angelina
    Servlet:
    public class JNLPServlet extends HttpServlet{
        public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws IOException, ServletException {
            try {          
                response.setHeader("Cache-Control", "public");
                response.setContentType("application/x-java-jnlp-file");
                String sessionId = getSessionId(request);
                ServletOutputStream out = response.getOutputStream();
                java.net.InetAddress[] hostNetAddrs =
                              java.net.InetAddress.getAllByName(request.getServerName());
                String hostIpAddr = hostNetAddrs[0].getHostAddress();
                out.println(generateJNLP(sessionId, request.getServerName(),
                                         hostIpAddr, request.getRemoteUser()));
                out.flush();          
            catch (IOException ex) {
                response.sendError(javax.servlet.http.HttpServletResponse.
                                   SC_SERVICE_UNAVAILABLE, ex.getMessage());
            catch (Exception ex) {
                response.sendError(javax.servlet.http.HttpServletResponse.
                                   SC_INTERNAL_SERVER_ERROR, ex.getMessage());
        protected String generateJNLP(String sessionId, String host, String ip, String userName){
            StringBuffer buf = new StringBuffer();
            buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
            buf.append("<jnlp spec=\"1.0+\" codebase=\"http://" + ip + ":80/cmv2/\">\n");
            buf.append("<information>\n");
            buf.append("<title>App V2.3 on " + host + "</title>\n");
            buf.append("<vendor>EMC Corporation</vendor>\n");
            buf.append("<homepage href=\"http://www.emc.com\" />\n");
            buf.append("<description>Program for monitoring performance.");
            buf.append("</description>\n");
            buf.append("<icon href=\"cm.gif\" width=\"32\" height=\"32\" depth=\"3\" size=\"1k\" />\n");
            buf.append("<offline-allowed />\n");
            buf.append("</information>\n");
            buf.append("<security>\n");
            buf.append("<all-permissions />\n");
            buf.append("</security>\n");
            buf.append("<resources>\n");
            buf.append("<j2se version=\"1.4+\" href=\"http://java.sun.com/products/autodl/j2se\"");
            buf.append("initial-heap-size=\"64m\" max-heap-size=\"194m\" />\n");
            buf.append("<property name=\"host_name\" value=\"" + host + "\"/>\n");
            buf.append("<property name=\"host_port\" value=\"80\"/>\n");
            buf.append("<property name=\"host_IP\" value=\"" + ip + "\"/>\n");
            buf.append("<property name=\"secure_host_port\" value=\"443\"/>\n");
            buf.append("<property name=\"session_id\" value=\"" + sessionId + "\"/>\n");
            buf.append("<property name=\"user_name\" value=\"" + userName + "\"/>\n");
            buf.append("<jar href=\"cmv2.jar\" />\n");
            buf.append("<jar href=\"ohj-jewt-4_1_9.jar\" />\n");
            buf.append("<jar href=\"help-4_1_9.jar\" />\n");
            buf.append("<jar href=\"oracle_ice-5_06_3.jar\" />\n");
            buf.append("<jar href=\"emcshared.jar\" />\n");
            buf.append("<jar href=\"xerces.jar\" />\n");
            buf.append("</resources>\n");
            buf.append("<application-desc main-class=\"com.emc.wclient.Login\">\n");
            buf.append("</application-desc>\n");
            buf.append("</jnlp>\n");
            return buf.toString();
    }

    The underlying problem is a combination of tomcat 4/5 being more standard and IE being less standard. Tomcat changed to automatically add ";charset=ISO-8859-1" to the end of the Content-Type header while IE appears to not correctly process the Content-Type header.
    IE maintains a list of known MIME types in the registry under [HKCR]\MIME\Database\Content Type. There you will find an entry for 'application/x-java-jnlp-file' which indicates that this MIME type is treated as a file with the suffix '.jnlp'.
    Unfortunately, IE treats EVERYTHING after the Content-Type: as the MIME type NOT just the stuff between the ':' and the ';'. Thus instead of looking for a registry entry for 'application/x-java-jnlp-file' it winds up looking for 'application/x-java-jnlp-file;charset=ISO-8859-1" and doesn't find it.
    If you duplicate the 'application/x-java-jnlp-file' entry with the name 'application/x-java-jnlp-file;charset=ISO-8859-1' everything works. Alternatively, if you make sure the 'file name' portion of the URL which requests the jnlp spec has the suffix '.jnlp' IE will work correctly. If you are generating the jnlp spec via your own servlet you can control the behavior of Tomcat by calling 'setCharacterEncoding(null)' on the response object (note this is not a method of the HttpServletResponse interface, you have to cast to the underlying concrete type).
    So, I think IE's use of the 'suffix' is non-standard and IE's handling of the Content-Type header field is just broken. If you can make the requesting URL have the .jnlp suffix you are ok; otherwise, there does not appear to be a good solution.

  • Console does not launch OVM 3.1.1, Win7x32 Firefox15/IE8 - Empty .jnlp file

    I have installed Oracle VM Manager 3.1.1, and two Oracle VMS servers; all seems to have gone pretty well after some learning curve. After success here, I created Clone of the most recent PeopleTools 8.5.2 and PeopleSoft HCM templates, and was able to start those machines. (Or at least, the Virtual Machine status shows "Running..." - read on.)
    However, when I try to launch the console, I get no success. First, when accessing the VMM server over HTTPS (port 7002), Java doesn't even try to start. Instead, basically, I get a screen blink and nothing else when I try to Launch Console from HTTPS. But when using HTTP:myVMM:7001, I get further. The Java logo appears briefly, and then I get "Application Error - Unable to launch the application" dialog. When I click on Details, I see the following under the Exception tab:
    JNLParseException[ Could not parse launch file. Error at line 0.]
         at com.sun.javaws.jnl.XMLFormat.decode(Unknown Source)
         at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source)
         at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
         at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
         at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
         at com.sun.javaws.Main.launchApp(Unknown Source)
         at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
         at com.sun.javaws.Main$1.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Looking further into this, the .jnlp that's presented to JAVA by Launch Console is zero bytes in length. What might cause the .jnlp file to be empty?

    Thank you very much for your rapid reply, SPA2! It's encouraging!
    You named the file correctly, and there is only one ovm_rasproxy-ws.jnlp on the system. It is at /u01/app/oracle/ovm-manager-3/machine1/base_adf_domain/servers/AdminServer/tmp/_WL_user/ovm_core/tgzc2b/war/ovm_rasproxy-ws.jnlp. It is not empty - has a size of 1028 bytes, and the contents are listed at the bottom of this message.
    I don't know how to start the vncviewer directly from the OVM Manager machine. I did install the package (twice, in fact... and the second time stated "package tightvnc-java-1.3.9-3.noarch is already installed" There are no executables in the tightvnc-java-1.3.9-3.noarch.rpm package, and I have not found indication of what the URL would be. Can you help with that?
    Trying to find the version of Java from http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CCwQFjAB&url=http%3A%2F%2Fwww.java.com%2Fen%2Fdownload%2Finstalled.jsp&ei=cFyOUL6OHpHo8QSrn4GIBg&usg=AFQjCNH6zuZGOL1prgUuefMNfg4eSpEOjQ I see "Something is wrong. Java is not working." So I uninstalled and reinstalled Java. Now it is Java 7 Update 9.
    Also - to further check this out, I did Save instead of Open from Firefox (IE does not give that option). Firefox saved a 0 byte file. I really appreciate the help.
    Contents of ovm_rasproxy-ws.jnlp:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="${Scheme}://${Server}:${ServerPort}/ovm/rasproxy/"
    href="ovm_rasproxy-ws.jnlp?${RequestUri}">
    <information>
    <title>Oracle VM Remote Access Service</title>
    <vendor>Oracle</vendor>
    <homepage>http://support.oracle.com/</homepage>
    </information>
    <resources>
    <!-- Application Resources -->
    <j2se version="1.5+"
    href="http://java.sun.com/products/autodl/j2se" />
    <jar href="ovm_rasproxy-signed.jar" main="true" />
    <jar href="commons-logging-1.1.1.jar" />
    </resources>
    <application-desc main-class="com.oracle.ovm.ras.proxy.RasProxyApplet">
    <argument>-server</argument>
    <argument>${Server}</argument>
    <argument>-service</argument>
    <argument>${Serviceid}</argument> <!--dynamic-->
    ${Credentials}
    </application-desc>
    <security>
    <all-permissions/>
    </security>
    <update check="always"/>
    </jnlp>
    Edited by: Dennis Lovelady on Oct 29, 2012 3:32 AM
    Edited by: Dennis Lovelady on Oct 29, 2012 3:36 AM to answer about installation of tightvnc and about Java version
    Edited by: Dennis Lovelady on Oct 29, 2012 4:10 AM

  • How to change the argument input in a jnlp file?

    A question associated with the following few lines of jnlp codes:
    <application-desc main-class="Main">
    <argument>arg</argument>
    </application-desc>
    My question is: "How can 'arg' be changed dynamically?
    Thanks for help.

    Thank Dietz for help.
    I tried the following jsp code. But it can launch the application only when "test2.jnlp" file exists. "argument to change" can't be passed to the application.
    Thanks.
    <% response.setContentType("application/x-java-jnlp-file");
    out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
    out.println("<jnlp ");
    out.println("spec=\"1.0+\" ");
    out.println("codebase=\"http://tang:8080/examples/rtla/\"");
    out.println("href=\"test2.jnlp\">");
    out.println("<information> ");
    out.println("<title>RTLAFrame viewer</title> ");
    out.println("<vendor>XXX, Inc.</vendor> ");
    out.println("<description>RTLAviewer Application Demo</description>");
    out.println("<description kind=\"short\">A viewer.</description> ");
    out.println("<offline-allowed/> ");
    out.println("</information> ");
    out.println("<security> ");
    out.println("<all-permissions/>");
    out.println("</security> ");
    out.println("<resources> ");
    out.println("<j2se version=\"1.3+\"/>");
    out.println("<jar href=\"test.jar\"/> ");
    out.println("</resources> ");
    out.println("<application-desc main-class=\"RTLAFrame\">");
    out.println("<argument>argument to change</argument>");
    out.println("</application-desc> ");
    out.println("</jnlp> ");
    %>

  • Dynamic JNLP - displaying using java web start

    Hi,
    I am creating a dynamic JNLP in a servlet at the server side. Please see below.
    String someJnlpString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
                                                "<jnlp .....    >    </jnlp>";       
            String attachment = "inline; filename=\"launch.jnlp";           
            String ct = "application/x-java-jnlp-file";
            OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream());
            response.setContentType(ct);
            response.setHeader("Cache-Control", "max-age=30");
            response.setHeader("Content-disposition", attachment);
            out.write(someJnlpString);{code}
      Then in my JSP, I am trying to open this JNLP  by using the following code
    {code}        window.open('servlet/DisplayImage?arg=first-arg");The exception that I am getting is JNLParseException could not parse launch file. Error at line 0. If I open the downloaded file then its working.
    Can somebody please advise me how can I directly open that JNLP from the servlet by using java web start?
    Thanks a ton,
    Subhash

    I am able to run it now after clearing the java cache

  • Issue with IE and dynamic JNLP (JSP)

    I'm trying to create a JNLP file using JSP to insert a dynamic argument into the webstarted (new word?) program. The link works fine in Firefox and Opera, but IE throws an error and says that it could not download the file. Here's my setup:
    JSP file (JNLP)
    LaunchClient.jsp
    <%@page contentType="application/x-java-jnlp-file"%>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc.//DTD JNLP 1.5//EN" "http://www.netbeans.org/jnlp/DTD/jnlp.dtd">
    <%
        String projectRefID = request.getParameter("projectRefID");
    %>
    <jnlp codebase="http://127.0.0.1:8080/tssa/">
      <information>
        <title>AppTest</title>
        <vendor>Company, Inc.</vendor>
        <homepage href="homepage.html"/>
        <description> </description>
        <icon href="default"/>
        <offline-allowed/>
      </information>
      <resources>
        <j2se href="http://java.sun.com/products/autodl/j2se" version="1.4+"/>
      </resources>
      <resources>
        <jar download="eager" href="jars/AppTest.jar" main="false"/>
      </resources>
      <application-desc main-class="apptest.Main">
        <argument><%= projectRefID %></argument>
      </application-desc>
    </jnlp>My link to the above page looks like this:
    <a href="LaunchClient.jsp?projectRefID=<%=currProject.getReferenceIdentifier()%>" >CLICKME</a>I've added the following mime mappings to my web.xml:
        <mime-mapping>
            <extension>jnlp</extension>
            <mime-type>application/x-java-jnlp-file</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>jar</extension>
            <mime-type>application/java-archive</mime-type>
        </mime-mapping>I've also tried using a servlet mapping so the link will still have a .jnlp extension as follows:
      <servlet>
        <servlet-name>JnlpMapping</servlet-name>
        <jsp-file>/restricted/LaunchClient.jsp</jsp-file>
      </servlet>
      <servlet-mapping>
        <servlet-name>JnlpMapping</servlet-name>
        <url-pattern>/restricted/myProgram.jnlp</url-pattern>
      </servlet-mapping>My link then points to myProgram.jnlp instead of LaunchClient.jsp. But that has the same results (works in firefox/opera but not in IE). Does anyone see why IE is complaining? Do I have to break down and write a servlet?
    --Also: I'm using Sun Application Server PE 9
    Message was edited by:
    QSilver002

    I had the same problem. The resolution is preety simple. You can't set header Cache-Control to no-cache, becouse IE tries to cache it before running. That's why any java error occurs, just can't find the file error. What supprised me is that you can't even save the file with right click "Save the target as..", which seems to be little strange. Any other page of type type/html with this header make no problem with that.
    Conclusion:
    IE makes some special trick with a file of type application/x-java-jnlp-file. Cache-Control to no-cache couses not only disability of running the ws directly, but also saving it locally, which doesn't happen with text/html type of page.
    Sevage

  • How to run the dynamic jnlp generate by jsp, but cache one is not dynamic?

    Hi Web Start expert,
    I need some urgent help on this issue. I want to pass some session info from my protal web app to my java app through web start. I have tried to use a servlet or jsp to generate a dynamic JNLP which will include all the necessary properties. It works fine if I don't include a href attribute in my jnlp tag. but I won't be able to launch the application off line. So I include the href to point to a static jnlp file resides in the same directory where jars are installed. This time when web start launches, my Java application does not seem to recognize all the login properties I passed through web application, and launch the Login Dialog. What I want to do is, if I come from the portal, since I had signed on to the portal, I don't need to login again to the java app. but when next time I click on the offline shortcut on my desktop for my Java app, I need to sign on to launch my Java app that was cached on the client machine. What is the best way to do this? Please help!
    Thanks in advance.
    Jenny

    The problem here is, when you acess the servlet from the browser, the servlet generates the jnlp file with the properties based on the full reference to the servelt (ie: http://myhost.com/servlet?arguments=xxx;yyy).
    If you put the href in the jnlp file:
    <jnlp codebase="http://myhost.com" href="servlet">, When Java Web Start is invoked, it will re-download the jnlp file using just "http://myhost.com/servlet", This will cause the servlet to generate jnlp file w/o the propertys that were based on the arguments and parameters to the url.
    On the other hand, if you try to add the arguments and parameters to the href wirh <jnlp codebase="http://myhost.com" href="servlet?arguments=xxx;yyy"> two problems occur.
    1.) java web start (all versions thru 1.4.2) will generate the cache directory based on the whole string "servlet?arguments=xxx;yyy" this means that every invocation is a seperately cached app, and you will get lots of entries in the download applications page in the Application Manager.
    2.) on some platforms, generating cache directory with "?" or ";" can cause IOExceptions.
    These problems will be addressed in 1.5:
    1 - the cache directory will be based only on the string up to the first "?" or ";".
    2 - jnlp files w/o href, will still be shown in the downloaded applications, and can be launched offline (if offline-allowed)
    In the mean time the only work around I have heard, is someone tried modifying the servlet, to first download the jnlp file with the correct parameters and args but with href="servlet", but caching the jnlp file generated, and then when java web start requested the servlet with no args, a few seconds later, sending it back the cached version.
    /Dietz

  • Dynamic jnlp - automatic launch

    I realize there are some posts on this topic, but nothing recent and nothing particularly concrete. Any insight is much appreciated.
    I am dynamically building a jnlp so that I can pass dynamic arguments into my webstart app. I am getting the file download dialog that asks me to either open or save my jnlp file. I am running Tomcat 6. I am using https. I have played with various settings based suggesstions in these forums. My response object looks like this:
    resp.setHeader("Content-disposition", "attachment; filename=supply.jnlp"  );
                resp.setHeader("Cache-Control", null);
                resp.setCharacterEncoding(null);
                resp.setHeader("Set-Cookie", null);
                resp.setHeader("Vary", null);
                resp.setDateHeader("Last-Modified", new Date().getTime()); my web.xml looks like this:
    <servlet>
         <servlet-name>SupplyJNLPServlet</servlet-name>
         <servlet-class>mil.atc.supply.servlet.SupplyJnlpBuilderServlet</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>SupplyJNLPServlet</servlet-name>
         <url-pattern>/SupplyJNLP</url-pattern>
    </servlet-mapping>
    <servlet>
         <servlet-name>JnlpDownloadServlet</servlet-name>
         <display-name>JnlpDownloadServlet</display-name>
         <servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>JnlpDownloadServlet</servlet-name>
         <url-pattern>*.jnlp</url-pattern>
    </servlet-mapping>
    <mime-mapping>
         <extension>jnlp</extension>
         <mime-type>application/x-java-jnlp-file</mime-type>
    </mime-mapping>
    The jnlp mime type is configured on my IIS server - I am using the Apache ASAPI filters.
    Once again, thanks for any help.

    dcfrank65, or anyone else... did you ever discover a solution to this problem?
    I too have an issue whereby opening a dynamically generated jnlp file over HTTP works fine, but opening it over HTTPS causes IE to prompt whether the file should be opened or saved. As you already discovered, there do seem to be quite a few threads covering this topic, but none with a definitive answer. In my case, the JNLP file is being rendered by ASP.NET code running on IIS.
    For the record, at the risk of becoming immediately unpopular (!), AndrewThompson64's comment about how dcrank65 failed to ask a question seems unnecessarily obtuse, since dcfrank65 did previous say:
    "I don't want to be prompted to open or save, I want my jnlp file to be executed and the webstart application to run with no further action from my user. +So I am asking for ideas to accomplish this+."
    This is a fairly clear and concise request for information, regardless of whether it was phrased as a question. So, dcfrank's response, though a little strong, seems justified.

Maybe you are looking for

  • No Longer able to Change Cellular Data settings. STUCK!!!!

    I AM USING AN UNLOCKED 3G iPHONE WITH TMOBILE SERVICE I use to be able to change the cellular data settings, but now out of the the blue. the options have changed! I would go to Settings>General>Network>Cellular Data> and then more options now when i

  • How do I fix Error Getting licence key E_AUTH_BAD_DEVICE_KEY

    I'm using ADE 2 on Windows 7. I downloaded and used one book onto my Nook a few months ago,. Just purchased some more books and can't download them as when ascm is opened I get "Unable do download - Error getting license. License server communication

  • YouTube not accessible

    I am not able to access Youtube. The icon is frozen. Yesterday I did app update.without Yt I find ipad half the worth

  • IPhoto keeps loading for hours +no responding+ HELP

    Hi My iPhoto keep loading for long time like searching for the picts, and dont stop. Untill I quit...Please help.... I have around 6000 picts, and i dont want to think that I have lost all the albums I created...and how I organized it... What can I d

  • Imail a mess after trying to uninstall mboxmail

    Just took delivery today of my nice new iMac and have got mysef in a real mess. 4 hours of trying and I really could do with some help. I have a hotmail account. Realised that imail didnt synchronise folders so installed mboxmail. It worked fine, fir