Meaning of spec attribute in JNLP file

What difference does the spec attribute in the <jnlp> tag in the JNLP file make? In our app we still have it set to 1.0+ even though we are using the JRE 1.5 (and also 1.4.2 previously):
<jnlp spec="1.0+" codebase="@client.codebase@" href="trading/eSpeedFXTrader.jnlp">It does not seem to make any difference, but I have seen examples with 1.5+.

usually, but not necessarily.
If the spec and jre say 1.5, you may run on 1.4.2 java web start and auto download 1.5 jre. In this case webstart will relaunch with jre 1.5 after autodl, but is not smart enough to relaunch with newer webstart, and may actually get the spec version error, before trying to auto download .
if you use the classid start up script (IE only at this point) from :
http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/launch.html#creating
you can be gaurenteed that 1.5.0 javawebstart is installed before launching, so there can be no problem having spec="1.5+".
/Andy

Similar Messages

  • What is the use of version attribute in jnlp tag??

    Hello,
    I want to know what is the use of version attribute in jnlp tag.
    For ex:
    <jnlp spec="6.0+" codebase="$$codebase" href="$$name" version="1.1">
    </jnlp>
    In the spec it explains:
    In the Jnlp tag:
    version = The version of the application being launched, as well as the version of the JNLP file itself.
    1. Is this version attribute would work as version attribute in jar tag. Ex: <jar href="application.jar" version="1.1"/> ?
    i.e. can we specify different jnlp's with the same name as we do for jar's with the help of version.xml.
    Any help is greatly appreciated.
    //Anjali

    Hi Reddy,
    If one Info Object depends on another info object we will make that dependent info object as a compounding attribute of main Info object.
    Eg: Storage Location – Plant
    In above eg there is no meaning of Storage Location without Plant. So, we will make storage location as compounding attribute of Plant.
    Regards,
    Sreehari.

  • JNLP file error

    Hello
    I got some strange behavior in my program and I don't understand why. Here is the situation.
    I have 2 jnlp files with the exact same content except one character.(the name of the file in the href below codebase). The first one is running perfectly fine and the second return me an error. Here are the 2 files (HelloFrame(running fine) and HelloFrame2(returning error))
    The error message is : Il manque le champ obligatoire suivant dans le fichier de lancement : <jnlp>
    which mean : There is missing an obligatory field in the launching file : <jnlp>
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for Notepad -->
    <jnlp spec="1.0+"
          codebase="http://www.gudradain.byethost12.com/"
          href="HelloFrame.jnlp">
       <information>
          <title>HelloWorld Essai</title>
          <vendor>Marc-Andre</vendor>
          <description>HelloWorld Essai</description>
          <homepage href="http://www.gudradain.byethost12.com/"/>
          <description kind="short">Small App pour me pratiquer avec java web start</description>
          <offline-allowed/>
       </information>
       <resources>    
            <jar href="HelloFrame.jar"/>  
         <j2se version="1.6+"
               href="http://java.sun.com/products/autodl/j2se"/>
       </resources>
       <application-desc main-class="Test2.HelloFrame"/>
    </jnlp>
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for Notepad -->
    <jnlp spec="1.0+"
          codebase="http://www.gudradain.byethost12.com/"
          href="HelloFrame2.jnlp">
       <information>
          <title>HelloWorld Essai</title>
          <vendor>Marc-Andre</vendor>
          <description>HelloWorld Essai</description>
          <homepage href="http://www.gudradain.byethost12.com/"/>
          <description kind="short">Small App pour me pratiquer avec java web
    start</description>
          <offline-allowed/>
       </information>
       <resources>    
            <jar href="HelloFrame.jar"/>  
         <j2se version="1.6+"
               href="http://java.sun.com/products/autodl/j2se"/>
       </resources>
       <application-desc main-class="Test2.HelloFrame"/>
    </jnlp>Here is the complete error message :
    MissingFieldException[ Il manque le champ obligatoire suivant dans le fichier de lancement : <jnlp>]
         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.Launcher.updateFinalLaunchDesc(Unknown Source)
         at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
         at com.sun.javaws.Launcher.launch(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)

    Ok I found a way to fix this problem but I don't like it. It's really stupid and I don't know why it would in anyway matter but it does. So if anyone could understand something of my following explication and tell me why it do it, I would be really gratefull.
    Here is what cause the problem and what I did to solve it.
    If I create a JNLP file and I don't upload it yet on my server (http://www.gudradain.byethost12.com/) and I try to run it from the folder in which I create it I will get an error message (which seems normal)
    If I upload my JNLP file that I got an error message sometime before on my server and I then try to run it I still get an error message (which I don't understand why because the file is on the server now so it should be able to access it)
    But if I create an exact copy of this file and I put it on the server and then test it (so I didn't get any error message before I test it) now it will work
    What I realize is that if I ever get an error message with a JNLP file that mean my JNLP file is screw and will always return an error message even if I correct this error. WHY!!!???

  • JNLP File Generated By A Servlet

    Based on configuration issues with our system build, I have created a servlet that generates the JNLP file for an app we have created. Once the file is written and contains all the dynamically generated info, it is never written by the servlet again.
    I noticed in creating the servlet, initially, that I actually HAD to write the JNLP file. Returning the JNLP file and setting the mime type in the HTTP response was not enough. When Web Start is invoked by the browser, it goes back to the stored JNLP file on the server.
    Can anyone explain why this is necessary?? Its seems redundant. If I can create the JNLP dynamically and pass it back to the browser, why must Web Start retrieve the JNLP file AGAIN from the web server after it launches??
    John Turner
    Software Engineer
    Context Media, Inc
    [email protected]

    There is a limit to what you can do with dynamically generated JNLP files. The combination of codebase and href must exactly specify the JNLP resource that you are retrieving. If you're using a servlet with parameters in a query string to generate the file, it should look like this:
    <jnlp spec="1.0+" codebase="http://app.datadevelopment.com/app" href="MyServlet?param1=value1&param2=value2">
    As long as the MIME type returned by the servlet is "application/x-java-jnlp-file", JWS will start just fine. Unfortunately, JWS will then bomb badly because it tries to use the href attribute as part of the file name for saving the file, and Windows at least doesn't like question marks in a file name.
    A workaround is to replace the query string with path values:
    <jnlp spec="1.0+" codebase="http://app.datadevelopment.com/app" href="MyServlet/param1=value1/param2=value2">
    I'm not 100% sure that this will work with the '=' sign as my application needed only one parameter so I dispensed with the paramN=valueN and replaced the directory with valueN only. The point is, though, that each and every time the application is launched JWS will go to the web server to get the latest copy of the JNLP and the only way I have found to dynamically generate the content is to append the necessary parameters as path names after the script (JSP in my case, servlet in your case).
    If you have multiple parameters and the '=' sign is a problem, strip out the parameter name and require that the parameters be specified in the same order each time. Use one directory delimiter per parameter.
    You can use request.getPathInfo() to retrieve the path after your servlet.

  • Update after max heap size change in jnlp file

    Hi,
    we added max-heap-size="256M" to an already via Web Start deployed application (meaning all required clients are using the application already). This attribute was the only change to the jnlp file, the application (the jar file) didn't change as well. Do clients notice this change and resize their max heap size? If not, would an application update (a new jar file) change that and the clients would update their heap size settings? Or is their any other way without uninstalling and installing the application again to notify the clients about this change?
    Thanks a lot! dos

    yes - a modified jnlp file (assuming the jnlp element has an href) will be downloaded the next time each of the clients use the application.
    /Andy
    If there is no href to the jnlp element in the jnlp file, the change will only be picked up by people who launch the app from a link on the web (as opposed to a shortcut)
    /Andy

  • Web Start : JAR resources in JNLP file are not signed by same certificate

    What does this error mean exactly?
    All the jars in this JNLP file are signed by the same certificate it's just that some of them are also signed by another certificate.
    According to this closed/fixed bug : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4928787
    Web Start should not be rejecting jars due to multiple signers???
    Is this a regression in 1.6? or was this never actually fixed?
    I can make this work by not signing these 'presigned' jars and putting them into extension JNLP files but this is less than desirable.
    Some reasons for not using the extension JNLP:
    -- Avoid this bug (which is also marked closed but not fixed) --> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6566071
    -- I would like to sign all the jars I deliver with my own certificate.
    -- I would also like to give my clients the ability so sign the jars themselves (their own certificate) after they certify the application for distribution throughout their organization.

    Thanks for responding.
    Here is an example that will show the problem. If you want to try yourself:
    NanoHTTPD.java is from here -> [http://elonen.iki.fi/code/nanohttpd/|http://elonen.iki.fi/code/nanohttpd/]
    C:\test>java -version
    java version "1.6.0_03"
    Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
    Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
    C:\test>dir
    Volume in drive C has no label.
    Volume Serial Number is CCC7-E05D
    Directory of C:\test
    04/10/2008  12:34 PM    <DIR>          .
    04/10/2008  12:34 PM    <DIR>          ..
    04/10/2008  11:04 AM               130 hello.java
    04/10/2008  11:30 AM               500 hello.jnlp
    04/10/2008  11:06 AM                89 hellohelper.java
    04/10/2008  09:52 AM            20,547 NanoHTTPD.java
                   4 File(s)         21,266 bytes
                   2 Dir(s)  26,292,060,160 bytes free
    C:\test>type hello.java
    public class hello
    public static void main(String[] args)
    System.out.printf("Hello %s\n",hellohelper.getString());
    C:\test>type hellohelper.java
    public class hellohelper
    public static String getString()
    return "World";
    C:\test>type hello.jnlp
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://localhost/" href="" >
        <information>
            <title>hello</title>
            <vendor>hello</vendor>
            <description>hello</description>
        </information>
        <security>
            <all-permissions/>
        </security>
        <resources>
            <j2se version="1.6" />
            <jar href="hello.jar"/>
            <jar href="hellohelper.jar"/>
        </resources>
        <application-desc main-class="hello"/>
    </jnlp>
    C:\test>javac *.java
    Note: NanoHTTPD.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: NanoHTTPD.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    C:\test>jar cvf hello.jar hello.class
    added manifest
    adding: hello.class(in = 524) (out= 332)(deflated 36%)
    C:\test>jar cvf hellohelper.jar hellohelper.class
    added manifest
    adding: hellohelper.class(in = 283) (out= 212)(deflated 25%)
    C:\test>keytool.exe -genkey -alias hello1 -keystore hello1keys.jks -dname cn=hello1 -storepass hello1 -keypass hello1
    C:\test>keytool.exe -genkey -alias hello2 -keystore hello2keys.jks -dname cn=hello2 -storepass hello2 -keypass hello2
    C:\test>jarsigner -keystore hello1keys.jks -keypass hello1 -storepass hello1 hellohelper.jar hello1
    Warning:
    The signer certificate will expire within six months.
    C:\test>jarsigner -keystore hello1keys.jks -keypass hello1 -storepass hello1 hello.jar hello1
    Warning:
    The signer certificate will expire within six months.
    C:\test>start java -cp . NanoHTTPD
    C:\test>javaws hello.jnlpAt this point click accept to trust the code and the program runs. Here is the console output:
    Java Web Start 1.6.0_03
    Using JRE version 1.6.0_03 Java HotSpot(TM) Client VM
    User home directory = C:\Documents and Settings\4381
    c:   clear console window
    f:   finalize objects on finalization queue
    g:   garbage collect
    h:   display this help message
    m:   print memory usage
    o:   trigger logging
    p:   reload proxy configuration
    q:   hide console
    r:   reload policy configuration
    s:   dump system and deployment properties
    t:   dump thread list
    v:   dump thread stack
    0-5: set trace level to <n>
    Hello WorldNow for second signature, and run again:
    C:\test>jarsigner -keystore hello2keys.jks -keypass hello2 -storepass hello2 hellohelper.jar hello2
    Warning:
    The signer certificate will expire within six months.
    C:\test>javaws hello.jnlpThis time it fails. Console output:
    Java Web Start 1.6.0_03
    Using JRE version 1.6.0_03 Java HotSpot(TM) Client VM
    User home directory = C:\Documents and Settings\4381
    c:   clear console window
    f:   finalize objects on finalization queue
    g:   garbage collect
    h:   display this help message
    m:   print memory usage
    o:   trigger logging
    p:   reload proxy configuration
    q:   hide console
    r:   reload policy configuration
    s:   dump system and deployment properties
    t:   dump thread list
    v:   dump thread stack
    0-5: set trace level to <n>
    #### Java Web Start Error:
    #### JAR resources in JNLP file are not signed by same certificateTo verify jars:
    C:\test>jarsigner -verify -verbose -certs hello.jar
             135 Thu Apr 10 12:39:26 CDT 2008 META-INF/MANIFEST.MF
             256 Thu Apr 10 12:39:26 CDT 2008 META-INF/HELLO1.SF
             770 Thu Apr 10 12:39:26 CDT 2008 META-INF/HELLO1.DSA
               0 Thu Apr 10 12:37:36 CDT 2008 META-INF/
    sm       524 Thu Apr 10 12:37:04 CDT 2008 hello.class
          X.509, CN=hello1
          [certificate will expire on 7/9/08 12:38 PM]
      s = signature was verified
      m = entry is listed in manifest
      k = at least one certificate was found in keystore
      i = at least one certificate was found in identity scope
    jar verified.
    Warning:
    This jar contains entries whose signer certificate will expire within six months.
    C:\test>jarsigner -verify -verbose -certs hellohelper.jar
             141 Thu Apr 10 12:38:56 CDT 2008 META-INF/MANIFEST.MF
             262 Thu Apr 10 12:41:30 CDT 2008 META-INF/HELLO2.SF
             770 Thu Apr 10 12:41:30 CDT 2008 META-INF/HELLO2.DSA
             262 Thu Apr 10 12:38:56 CDT 2008 META-INF/HELLO1.SF
             770 Thu Apr 10 12:38:56 CDT 2008 META-INF/HELLO1.DSA
               0 Thu Apr 10 12:37:44 CDT 2008 META-INF/
    sm       283 Thu Apr 10 12:37:04 CDT 2008 hellohelper.class
          X.509, CN=hello2
          [certificate will expire on 7/9/08 12:38 PM]
          X.509, CN=hello1
          [certificate will expire on 7/9/08 12:38 PM]
      s = signature was verified
      m = entry is listed in manifest
      k = at least one certificate was found in keystore
      i = at least one certificate was found in identity scope
    jar verified.
    Warning:
    This jar contains entries whose signer certificate will expire within six months.Why does javaws say: "JAR resources in JNLP file are not signed by same certificate" when clearly they are both signed by the same certificate (the one aliased by CN=hello1)?

  • Could not load file/URL (file not found) error for JNLP file

    I am completely baffled in trying to figure out why I am getting the following error for some JNLP files but not others:
    Error: could not load file/URL specified: C:\Users\tom\AppData\Local\Temp\javaws2
    java.io.FileNotFoundException: C:\Users\tom\AppData\Local\Temp\javaws2 (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(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)I have Googled around this forum and elsewhere, and have seen reports that this error is IE-specific, and seems to have something to do with no-cache headers being sent, or with the client browser's cache being full or turned off (which is not my case). I saw the information in the JavaWS FAQ, which recommended turning off security constraints for the JNLP's URI. I tried that, and it didn't help. One of the very baffling things is that I have created several variations of the JNLP file, with varying combinations of jars and property resources, and some combinations always work while other combinations never work. Here's an example:
    <jnlp spec="1.0+" codebase="$$codebase">
       <information>
          <title>demo app</title>
          <description>illustrates weird bug</description>
       </information>
       <resources>
          <j2se version="1.5+"/>
          <jar href="randomFile.jar"/>
          <property name="xxx" value="xxxx"/>
          <property name="swing.metalTheme" value="steel"/>
       </resources>
    </jnlp>The above file always fails with the error shown at the top of this message. However, if I remove either of the two properties, it works fine. And I have created other variations with lots of properties, some of which work. All of these variations are in the same directory in the war file, served by the exact same servlet (a slightly modified version of the jnlp.sample.servlet.JnlpDownloadServlet provided with JDK 1.6.0_3). Assuming that a no-cache header is the problem, what on earth could be causing some JNLP files to always be served with a no-cache header, while others are never served with a no-cache header?
    On a related note, any recommended debugging techniques for seeing what headers are being transmitted? I tried adding a simple check for a "debug=true" parameter in the servlet that causes it to set the content type to "text/plain" instead of JNLP, and that allows me to see (rather than execute) the JNLP XML that's being returned, but it doesn't show me the HTTP headers that are being sent back. If any caching headers are being set, I think it must be being set by the servlet container itself, as it's nothing being set in the servlet code that I can see. So I don't see any way on the server side Java code to output or log the actual HTTP response (or is there?). Any tips in that regard much appreciated.
    Edited by: TomC125468 on Aug 19, 2009 1:35 PM

    Hi Luca-Sanna,
    Thanks for the response. Re browsers, yes, it fails in IE but it succeeds in Firefox. The info on the JavaWS FAQ and other places all seem to indicate that it's an IE issue concerning handling of the cache-control headers.
    I should check in my webserver forum (Sun WebServer 7) to see about logging options. Sniffing on the client side is not possible, as my app is required to use HTTPS exclusively, and unfortunately that also precludes a telnet GET request.

  • Can't get that damned WebStart jnlp file to work!!!

    hi i have a problem, i can't get webstart to work. lool at my homepage http://www.deutronium.de.vu/games.html. the WebStart files of the first two games of the page do not work. i tried all things but i can't get them to work for me. it always give me an error message that it cannot find a resource.
    this is my jnlp file, the jars are in the same directory:
    <?xml version="1.0" encoding="utf-8"?>
      <jnlp spec="1.0+" codebase="http://www.deutronium.de.vu/games/Dedris/" href="Dedris.jnlp">
      <resources>
        <jar href="http://www.deutronium.de.vu/games/Dedris/Dedris.jar" />
        <j2se version="1.2 1.3 1.4 1.4.1" />
      </resources>
      <application-desc main-class="Dedris" />
    </jnlp>

    I think it's has something to do with your webserver. I took everything as is and just changed the urls and it worked. It has to be, because the same thing happens with NumberGame and I didn't change anything but that. If you want, I could host them until you fix it or get a working one.

  • How to specify a JRE range in jnlp file?

    We have a java app which uses Java Web Start. The jnlp file is configured with [j2se version="1.5+"]. So if JRE 1.5 and 1.6 are installed, the app is run on 1.6.
    Now, we have requirement where the app should be restricted to run only within the range - JRE 1.5.0_07 through JRE 1.5.0_17
    [j2se version="1.5*"] will not work - it will always launch the app with the latest jre from 1.5 family.
    I can request an exact product version by including the href attribute. [j2se version="1.5.0_14" href="http://java.sun.com/products/autodl/j2se"/]
    But how do I specify a specific range of JREs in the jnlp file so that JWS picks up a JRE from that range only? So if 1.5.0_07, 1.5.0_17 and JRE 6 are installed, it should run the app on 1.5.0_17.
    Can JNLP really allow you to select specific range of JREs? Is there a good way to accomplish this? Please help.

    sunjavaboy wrote:
    ..how do I specify a specific range of JREs in the jnlp file so that JWS picks up a JRE from that range only? So if 1.5.0_07, 1.5.0_17 and JRE 6 are installed, it should run the app on 1.5.0_17.From the JNLP Specification
    *4.6 Java Runtime Environment*
    Several JREs can be specified, which indicates a prioritized list of the supported JREs, with the most preferred version first. For example,
        <java version="1.3" initial-heap-size="64m"/>
        <java version="1.2">
          <resources> ... </resources>
        </java>So your app. would need more along the lines of..
        <java version="1.5.0_07 1.5.0_08 1.5.0_09 1.5.0_10 1.5.0_11 1.5.0_12 1.5.0_07 1.5.0_13 1.5.0_14 1.5.0_15 1.5.0_16 1.5.0_17 " />
        <java version="1.6+" />Actually you'd need the list of 1.5 versions reversed. Well, you get the idea hopefully. For more on versioning, see my [JWS versioning page|http://pscode.org/jws/version.html].

  • Deploying FX as a Desktop App - jnlp file codebase should be...what?

    Howdy,
    If I try and run my deployed JavaFX app on another PC I get an error pointing back to the codebase that NB created in the <appname>.jnlp file:
    codebase="[http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/E%3A/JavaFX/Projects/Concentration/Concentration11/dist/]"My main question is, for a standalone desktop FX app you want to distribute, what should the codebase be?
    I assume you don't point to your developer machine's URL because of course that won't exist on someone else's machine. And unlike most web examples, this won't be running from a server.
    Many other examples refer to running the jar file from the command prompt - not acceptable if you are selling an applet, or even just distributing to the general public.
    So how does this work - how do you set up the jnlp file for desktop deployment? And, do you have to manually do this, or is there something I am missing in NB (6.8) ?
    Many thanks in advance.

    Hi Phil and thank you. I admit have been avoiding learning to compile from the command prompt or with other tools due to the ease that NB affords - but it seems that NB is introducing some issues lately.
    I haven't tried the other tools yet, but I thought maybe I could just edit the NB created jnlp file:
    [http://forums.sun.com/about:blank]<jnlp spec="1.0+" codebase="file:/" href="Concentration11.jnlp"> [http://forums.sun.com/about:blank]<information>  <title>*Concentration11*</title>  <vendor>*Gary*</vendor>  <homepage href="http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/E%3A/JavaFX/Projects/Concentration/Concentration11/dist/"/>  <description>*Concentration11*</description>  <offline-allowed/>  </information> [http://forums.sun.com/about:blank]<resources>  <j2se version="1.5+"/>  <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.2/javafx-rt.jnlp"/>  <jar href="Concentration11.jar" main="true"/>  <jar href="lib/derby.jar"/>  <jar href="lib/derbyclient.jar"/>  <jar href="lib/derbytools.jar"/>  <jar href="lib/.netbeans-derby_JapaneseWords.jar"/>  </resources> [http://forums.sun.com/about:blank]<application-desc main-class="com.sun.javafx.runtime.main.Main">  <argument>*MainJavaFXScript=dbPackage.Main*</argument>  </application-desc>  <update check="background"/>  </jnlp>Replacing the code base with your file idea, if I try to run from the jnlp file it complains it can't find the resource:
    com.sun.deploy.net.FailedDownloadException: Unable to load resource: file:/Concentration11.jnlp
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    <...more...>Sorry to be so dense. Any ideas what I am flubbing up this time?
    Thank you Phil.

  • Error while uploading master data attributes thru flat file

    while uploading master data attributes thru flat file i am facing the below errow. can nyone let me know plz.
    Error 8 when compiling the upload program: row 227, message: Data type /BIC/CCDEIO_MAT5_ATTR was found in a new

    This just means that you changed the transfer rules/transfer structure and have not refreshed the workbench yet.  The infopackage data hasn't been updated ... this is similar to a datasource update, where you need to replicate to make sure BW knows the latest version. 
    The best way to correct this error is to reload RSA1.  Every time I make a change to the tr/ts, I always run /nrsa1 to refresh the workbench. 
    Brian

  • 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

  • Icon size in JNLP file.

    Hi! I change the attributes 'width' and 'height' in the tag 'icon href', but the size of icon not change, why? Anybody can hel me?? Thanks.

    The width and height attributes for icons in the jnlp
    file are hints to the implementation (java web start)
    to aid it in only downloading the icons it needs.
    They are not directives to the implementation to tell
    it how large to display it. The current version of
    Java Web Start dosn't use these hints at all.What version of WebStart were you referring to? I am running 1.0.1_02 (build b03) and I am wondering if these hints will be used.

  • 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> ");
    %>

Maybe you are looking for