JNLP nativelib UnsatisfiedLinkError

How do I let System.loadlibrary() to search for .dll in the signed jar file?
I could not find a satisfactory & direct answer on any jnlp forum.
Thanks in advance.
Gaurav.
Already Tried:
1.In the .jnlp file, <nativelib> element points to the signed jar file containing dlls
2.System.loadlibrary by default checks in the current directory for .dll file or java.library.path .
3. java.library.path pointed to cache where java web start downloads the .dll file
Points 1,2,3 did not help me.

hi there,
Jar files are signed with different certificates.
NO they are signed with the same certificate, cross checked it.The DLL's are not in the root of the signed jar file.
Signed Jar FIle contains only one hello.dll , which simply displays "Hello World"jarsigner" -keystore olpKeys hell.jar olp
hell.jar contains HelloWorld.classThe System.loadlibrary() call doesn't match the DLL name correctly.
static {
System.loadlibrary("hello")
This is where the Exception is thrown. Details of the Exception are shown below.
If you have more than one DLL and they have dependencies, the order of System.loadlibrary() for each DLL matters
Just One DLL present in the signed jar file.*****************************************************************************************
Java Main Class Code:
public class HelloWorld {
public native void displayHelloWorld();
public HelloWorld() {
static {
System.loadLibrary("hello");
public static void main(String[] args) {
HelloWorld obj = new HelloWorld();
obj.displayHelloWorld();
JNLP Code:
hell.jar contains HelloWorld.class
helldll.jar contains hello.dll<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+"
codebase="http://localhost:8080/player/hello/"
>
<information>
<title>Time Check</title>
<vendor>Java Developer Connection</vendor>
<homepage href="/olp" />
<description>Demonstration of Offline Player thru JNLP</description>
</information>
<offline-allowed/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.3+" />
<jar href="hell.jar"/>
</resources>
<resources os="windows">
<nativelib href="helldll.jar"/>
</resources>
<application-desc main-class="HelloWorld" />
</jnlp>
Exception Details :
ava.lang.UnsatisfiedLinkError: no hello in java.library.path
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
     at java.lang.Runtime.loadLibrary0(Runtime.java:788)
     at java.lang.System.loadLibrary(System.java:832)
     at HelloWorld.<clinit>(HelloWorld.java:18)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:324)
     at com.sun.javaws.Launcher.executeApplication(Unknown Source)
     at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
     at com.sun.javaws.Launcher.continueLaunch(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:536)
Directory Structure:
player/hello/
hell.jar ................jar containing HelloWorld.class
helldll.jar ......... jar containing hello.dll
olpkeys ..........keystore
Thanks for your interest.

Similar Messages

  • Signed, cached JNLP applet doesn't start when updating from 1.6 to 1.7

    Hi, yesterdays forced upgrade from Java6 to Java7 uncovered a nasty surprise for us:
    We're running a game client through JNLP embedded in the browser using signed all-permission jars. The certificate is definitely valid and hasn't timed out.
    When upgrading from 1.6 to 1.7 the applet won't start because of a supossed permission violation for the cached jars. Web start thinks that the jars in the cache are not signed (although they are).
    Deleting the applet cache through the control panel, or deploying a new version of the applet both solves the problem as then the cached version will be overwritten with a newly downloaded version, and everything works fine from then on until switching back to 1.6 again.
    Are 1.6 vs. 1.7 cached, signed jars not compatible? Something to do with pre-validation? Wouldn't it be a good idea to completely invalidate the applet cache in the JRE installer? Is this a bug on the JRE side, or are we somehow not using JNLP the right way (we're running the game for 2 years now, and a couple of million players have played the game since then on JRE6, so I assume we're using JNLP basically the right way).
    Also, early JRE7 preview versions didn't seem to have this problem, I remember testing JRE7 intensively a few months back without any problems, however I'm not sure whether the cache remained intact when installing the preview JRE7 runtime.
    Here are the console traces, please excuse the German, hopefully it's still clear what happens.
    Oops, unfortunately I can only send 30k characters per post. I'd be happy to send you more traces, and additional information. Thanks in advance :)
    Here's a trace when going from 1.6 to 1.7 with the failed permission validation:
    Java-Plug-in 10.5.1.255
    JRE-Version verwenden 1.7.0_05-b05 Java HotSpot(TM) Client VM
    Benutzer-Home-Verzeichnis = C:\Users\aweissflog
    c: Konsolenfenster löschen
    f: Objekte in Finalisierungs-Queue finalisieren
    g: Garbage Collect
    h: Diese Hilfemeldung anzeigen
    l: Class Loader-Liste ausgeben
    m: Speicherauslastung drucken
    o: Logging auslösen
    q: Konsole ausblenden
    r: Policy-Konfiguration neu laden
    s: System- und Deployment-Eigenschaften ausgeben
    t: Threadliste ausgeben
    v: Thread-Stack ausgeben
    x: Class Loader-Cache leeren
    0-5: Trace-Ebene auf <n> setzen
    security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
    security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
    security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
    security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy
    security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy
    security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
    security: property package.definition value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
    security: property package.definition new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
    security: property package.definition value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws
    security: property package.definition new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy
    security: property package.definition value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy
    security: property package.definition new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
    security: property package.access value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
    security: property package.access new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
    security: property package.definition value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp
    security: property package.definition new value sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.,com.sun.javaws,com.sun.deploy,com.sun.jnlp,org.mozilla.jss
    network: Created version ID: 1.7.0.05
    network: Created version ID: 1.7
    network: Cacheeintrag nicht gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500, Version: null]
    cache: Cannot get resource from cache: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500
    network: Cacheeintrag nicht gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500, Version: null]
    network: Cacheeintrag nicht gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500, Version: null]
    network: Verbindung von http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500 mit Proxy=DIRECT wird hergestellt
    network: Verbindung von http://xxxxxxxxxxx.xxxxxxxxxxx.com:80/ mit Proxy=DIRECT wird hergestellt
    security: Blacklist-Entzugsprüfung ist aktiviert
    cache: Trying to update in place C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\26\7672fd9a-3ab71d78.idx
    cache: Upgrade writing to disk for C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\26\7672fd9a-3ab71d78
    network: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500 wird mit Cookie "bpLandingPage_fallback=http%253A%252F%252Fxxxxxxxxxxx.xxxxxxxxxxx.com%252F; __utma=1.1858223971.1337797861.1339681185.1339685623.36; __utmb=1.12.10.1339685623; __utmc=1; __utmz=1.1338833129.25.9.utmcsr=xxxxxxxxxxx.xxxxxxxxxxxonline.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __bpid=4fbd2a85L7T6qCGWXj0Q8oiTc5yG7ztB; drasasid=f1a4ef896018075f51bbe2c300b356ca" verbunden
    network: ResponseCode für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500: 200
    network: Codierung für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500: null
    network: Serverantwort: (length: 731, lastModified: Wed Jun 13 19:21:23 CEST 2012, downloadVersion: null, mimeType: application/x-java-jnlp-file)
    network: Not caching resource due to response header: cache-control: no-store
    network: Ressource wird heruntergeladen: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500
         Content-Length: 731
         Content-Encoding: null
    security: Prüfung der Liste vertrauenswürdiger Librarys ist aktiviert
    network: URL http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500 in Datei C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\34\1f2e02e2-2f6a1505-temp geschrieben
    network: Verbindung mit http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500 trennen
    security: Datei mit der Liste vertrauenswürdiger Librarys wurde nicht gefunden
    network: Downloaded http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp?__cv=7833172affa6ff4e182d8b1e7ac0ebe500: C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\34\1f2e02e2-2f6a1505
    temp: new XMLParser with source:
    temp: <?xml version="1.0" encoding="UTF-8" ?>
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    </information>
    <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
    <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true" />
    </resources>
    <resources os="Windows">
    <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00" />
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600" />
    <security>
    <all-permissions />
    </security>
    </jnlp>
    temp:
    returning ROOT as follows:
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    </information>
    <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true"/>
    </resources>
    <resources os="Windows">
    <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00"/>
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600"/>
    <security>
    <all-permissions/>
    </security>
    </jnlp>
    temp: returning LaunchDesc from XMLFormat.parse():
    <jnlp spec="1.0+" codebase="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/" href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    <homepage href="null"/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <update check="timeout" policy="always"/>
    <resources>
    <java href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
    <jar href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" download="eager" main="true"/>
    <nativelib href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00" download="eager" main="false"/>
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" documentbase="http://xxxxxxxxxxx.xxxxxxxxxxx.com/game" width="800" height="600"/>
    </jnlp>
    network: Cacheeintrag gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp, Version: null] prevalidated=true/0
    cache: Resource http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp has expired.
    network: Verbindung von http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp mit Proxy=DIRECT wird hergestellt
    network: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp wird mit Cookie "bpLandingPage_fallback=http%253A%252F%252Fxxxxxxxxxxx.xxxxxxxxxxx.com%252F; __utma=1.1858223971.1337797861.1339681185.1339685623.36; __utmb=1.12.10.1339685623; __utmc=1; __utmz=1.1338833129.25.9.utmcsr=xxxxxxxxxxx.xxxxxxxxxxxonline.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __bpid=4fbd2a85L7T6qCGWXj0Q8oiTc5yG7ztB; drasasid=f1a4ef896018075f51bbe2c300b356ca" verbunden
    cache: Upgrade of entry done
    cache: readIndexFile returning success
    cache: Trying to update in place C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\39\1ff11027-574532ab.idx
    cache: Upgrade writing to disk for C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\39\1ff11027-574532ab
    security: Datei mit der Liste vertrauenswürdiger Librarys wurde nicht gefunden
    network: ResponseCode für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp: 304
    network: Codierung für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp: null
    network: Verbindung mit http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp trennen
    temp: new XMLParser with source:
    temp: <?xml version="1.0" encoding="UTF-8" ?>
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    </information>
    <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
    <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true" />
    </resources>
    <resources os="Windows">
    <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00" />
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600" />
    <security>
    <all-permissions />
    </security>
    </jnlp>
    temp:
    returning ROOT as follows:
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    </information>
    <resources>
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true"/>
    </resources>
    <resources os="Windows">
    <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00"/>
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600"/>
    <security>
    <all-permissions/>
    </security>
    </jnlp>
    temp: returning LaunchDesc from XMLFormat.parse():
    <jnlp spec="1.0+" codebase="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/" href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp">
    <information>
    <title>xxxxxxxxxxxOnlineWin32</title>
    <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
    <homepage href="null"/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <update check="timeout" policy="always"/>
    <resources>
    <java href="http://java.sun.com/products/autodl/j2se" version="1.6+"/>
    <jar href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" download="eager" main="true"/>
    <nativelib href="http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00" download="eager" main="false"/>
    </resources>
    <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" documentbase="http://xxxxxxxxxxx.xxxxxxxxxxx.com/game" width="800" height="600"/>
    </jnlp>
    cache: JNLPPreverifyClassLoader.initialize: FAILED: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00
    basic: Plugin2ClassLoader.addURL2 called for http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00
    basic: Plugin2ClassLoader.drainPendingURLs addURL called for http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00
    basic: Plugin2ClassLoader.addURL2 called for http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00
    basic: Plugin2ClassLoader.drainPendingURLs addURL called for http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00
    network: LaunchDownload: concurrent downloads from LD: 4
    network: Total size to download: -1
    security: Security check for progress jars: allSigned=true
    network: SyncFileAccess.openLock: handled OverlappingFileLockException, remainint TO : 10000
    network: Cacheeintrag gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00, Version: null] prevalidated=false/0
    cache: Resource http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00 has expired.
    network: Verbindung von http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00 mit Proxy=DIRECT wird hergestellt
    network: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00 wird mit Cookie "bpLandingPage_fallback=http%253A%252F%252Fxxxxxxxxxxx.xxxxxxxxxxx.com%252F; __utma=1.1858223971.1337797861.1339681185.1339685623.36; __utmb=1.12.10.1339685623; __utmc=1; __utmz=1.1338833129.25.9.utmcsr=xxxxxxxxxxx.xxxxxxxxxxxonline.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __bpid=4fbd2a85L7T6qCGWXj0Q8oiTc5yG7ztB; drasasid=f1a4ef896018075f51bbe2c300b356ca" verbunden
    network: ResponseCode für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00: 304
    network: Codierung für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00: null
    network: Verbindung mit http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00 trennen
    network: Downloaded http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00: C:\Users\aweissflog\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\26\7672fd9a-3ab71d78
    network: Download Progress: jarsDone: 1
    network: Cacheeintrag nicht gefunden [URL: http://xxxxxxxxxxx-481.ah.bpcdn.net/applet/loading.gif?__cv=8948a154c2c16d3f2a836802397bee3a00, Version: null]
    network: Verbindung von http://xxxxxxxxxxx-481.ah.bpcdn.net/applet/loading.gif?__cv=8948a154c2c16d3f2a836802397bee3a00 mit Proxy=DIRECT wird hergestellt
    network: Verbindung von http://xxxxxxxxxxx-481.ah.bpcdn.net:80/ mit Proxy=DIRECT wird hergestellt
    cache: Upgrade of entry done
    cache: readIndexFile returning success
    network: CleanupThread used 403203 us
    network: Cacheeintrag gefunden [URL: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00, Version: null] prevalidated=false/0
    cache: Resource http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00 has expired.
    network: Verbindung von http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00 mit Proxy=DIRECT wird hergestellt
    network: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00 wird mit Cookie "bpLandingPage_fallback=http%253A%252F%252Fxxxxxxxxxxx.xxxxxxxxxxx.com%252F; __utma=1.1858223971.1337797861.1339681185.1339685623.36; __utmb=1.12.10.1339685623; __utmc=1; __utmz=1.1338833129.25.9.utmcsr=xxxxxxxxxxx.xxxxxxxxxxxonline.com|utmccn=(referral)|utmcmd=referral|utmcct=/; __bpid=4fbd2a85L7T6qCGWXj0Q8oiTc5yG7ztB; drasasid=f1a4ef896018075f51bbe2c300b356ca" verbunden
    network: ResponseCode für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00: 304
    network: Codierung für http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00: null
    network: Verbindung mit http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00 trennen
    network: Download Progress: jarsDone: 2
    network: Created version ID: 1.6+
    network: Created version ID: 1.7.0.05
    network: Created version ID: 1.7.0.05
    network: Created version ID: 1.7
    basic: LaunchDesc location: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/win32.jnlp
    network: Created version ID: 1.0+
    network: Created version ID: 7.0
    basic: Ausnahme: Nicht signierte Anwendung fordert uneingeschränkten Zugriff auf das System an
    Nicht signierte Ressource: http://xxxxxxxxxxx.xxxxxxxxxxx.com/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00.
    ExitException[ 3]JNLPException[category: Sicherheitsfehler : Exception: null : LaunchDesc:
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
      <information>
        <title>xxxxxxxxxxxOnlineWin32</title>
        <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
      </information>
      <resources>
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true"/>
      </resources>
      <resources os="Windows">
        <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00"/>
      </resources>
      <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600"/>
      <security>
        <all-permissions/>
      </security>
    </jnlp> ]
         at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
         at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
         at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Ignored exception: ExitException[ 3]JNLPException[category: Sicherheitsfehler : Exception: null : LaunchDesc:
    <jnlp spec="1.0+" href="/applet/win32.jnlp">
      <information>
        <title>xxxxxxxxxxxOnlineWin32</title>
        <vendor>xxxxxxxxxxx Berlin GmbH</vendor>
      </information>
      <resources>
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="/applet/applet32.jar?__cv=d9e6e3109f4e716598e7faca54137e7e00" main="true"/>
      </resources>
      <resources os="Windows">
        <nativelib href="/applet/native32.jar?__cv=63a18d5fb09ca89e097ff6485249fdcf00"/>
      </resources>
      <applet-desc name="xxxxxxxxxxxOnlineWin32" main-class="N3.N3JavaPiggyBack" width="800" height="600"/>
      <security>
        <all-permissions/>
      </security>
    </jnlp> ]
    security: Zugriff auf Schlüssel und Zertifikat im Mozilla-Benutzerprofil: null
    security: Speicher für abgelehnte Sessionzertifikate zurücksetzen
    basic: Dialog type is not candidate for embedding

    Wouldn't it be a good idea to completely invalidate the applet cache in the JRE installer?Yes, I guess it should be an option for user of the app on first start after upgrade, not for the JRE installer. There are many large applications that users would want to avoid re-download.
    From the log, there is some hidden exception during first launch. The best way to proceed is to file a bug, including some guest/debugging access to the game.

  • Different Versions of JWS Don't work with my jnlp - please help!!

    I had jdk1.5.0_14 installed with IIS serving a jnlp file that indicates the java version must be 1.5. I can download and run my application from a web page.
    I installed jdk1.6.0_02. JAVA_HOME and the path environment variables both point to jdk 1.5.
    I try to download the same jnlp via web browser. The JWS version indicates 1.6 but the java version correctly indicates 1.5. The problem, however, is that my app no longer runs - I get an error as my app tries to install some third-party tools that only run with Java 1.5 (the app can't run with Java 1.6 but I need Java 1.6 for other apps).
    When I run this command "C:\Java\JDK1.5.0_14\bin\javaws 'C:\IIS\appdirectory\myfile.jnlp'" my application runs as it did previously.
    Can anyone tell me if I can tell the system which version of JWS to use when running my jnlp file? I don't want to use the Java 1.6 version for my version that will be using JDK1.5.
    Help would be greatly appreciated!!!

    Thanks for your reply, however, I do have the j2se version tag set and when I have a Java Console window running along with my download the first line in the console window indicates it is using JWS version as 1.6 but the second line in the window indicates it is using JRE version as 1.5...I would like for both of them to be the same. So, I am getting the correct java version but something is happening with the JWS using the version from 1.6. Here's a snippet from my jnlp file:
    <resources>
         <j2se version="1.5"/>
         <jar href="./ShipControlJavaPrototype.jar" main="true" />
                   <jar href="./vecmath.jar"/>
         <jar href="./xith-tk.jar"/>
                   <jar href="./joal.jar"/>
                   <jar href="./log4j.jar"/>
         <jar href="./lwjgl.jar"/>
         <jar href="./vorbis.jar"/>
         <jar href="./xith_utilities.jar"/>
                   <jar href="./swing-layout-1.0.jar"/>
                   <jar href="./sqljdbc.jar"/>
         <nativelib href="joal-win.jar"/>
         <nativelib href="jogl-natives-win32.jar"/>
                   <nativelib href="joystick.jar"/>
                   <nativelib href="commsutilities.jar"/>
    </resources>

  • How to pass java.library.path as a VM argument in JNLP file

    I jave a jar file containing reference to sqljdbc4.jar as I am using JDBC to talk with SQL Server. It works fine through eclipse IDE when I give the fillowing VM Argument
    -Djava.library.path=C:\Users\reddys2\Downloads\sqljdbc_4.0\enu\auth\x86. Without this I get the "error message" saying that "failed to load sqljdbc_auth.dll
    Now I would like to bundle working jar file in .jnlp and invoke through browser. I tried to add vm argunment (<property name="java.library.path" value="C:\Users\reddys2\Downloads\sqljdbc_4.0\enu\auth\x86"/> ) in the .jnlp file. But still i am getting "WARNING:Failed to load the sqljdbc_auth.dll cause:no sqljdbc_auth in java.library.path"
    Any help is greatly appreciated. Here are the contents of JNLP file
    =======================================================================================
    ?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://xxx.16.19.56:8080/ifsdTools/" href="PF_UserList.jnlp">
    <information>
    <title>Login into PF</title>
    <vendor>XXX XXXX</vendor>
    <description>Provides ability to mirror PF Data base locally</description>
    </information>
    <resources>
         <j2se version="1.4+"/>
         <jar href="PopulateIFSDProjectForgeData.jar" />
         <jar href="Psqljdbc4.jar" main/>
         <property name="java.library.path" value="."/>
         <property name="javax.net.ssl.keyStore" value="NONE"/>
         <property name="javax.net.ssl.keyStoreType" value="PKCS11"/>
         <property name="http.proxyHost" value="proxy1.lmco.com"/>
         <property name="http.proxyPort" value="80"/>
         <property name="java.library.path" value="C:\Users\xxxx\Downloads\sqljdbc_4.0\enu\auth\x86"/>
         <property name="pfProjectId" value="proj1073" />
    </resources>
    <security>
         <all-permissions/>
    </security>
    <application-desc main-class="ifsdTools.PopulateIFSDProjectForgeData" />
    </jnlp>
    =========================================================================================================
    Edited by: 878645 on Apr 26, 2012 3:43 PM

    Thanks for the pointer. Question that I have is I am referencing sqljdbc4.jar in my application, which in turn using sqljdbc_auth.dll.
    Which one should i refernce through <nativelib>. Is it sqljdbc4.jar or sqljdbc_auth.dll.
    have added the following line to the .jnlp.
    <nativelib href="sqljdbc4.jar"/>
    But still it is complaining on sqljdbc_audth.dll. If it is sqljdbc_auth.dll, can I use <nativelib> to pass it.
    In that case does it need to be signed?. If so,
    Is it possible to sign .dll using 'jarsigner'?.
    Edited by: 878645 on Apr 26, 2012 3:43 PM

  • JNLP file failed to run using javaws - NumberFormatException

    Hi all,
    I am clueless about this one. A fresh pair of eyes would be helpful.
    I am trying to run two JNLP files on for running remote consoles on
    2 separate Linux blades.
    Here is one of them:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="https://icn1-bmc:443/">
         <information>
            <title>JavaRConsole</title>
            <vendor>Sun Microsystems</vendor>
            <description kind="one-line">JavaRConsole Console Redirection Application</description>
            <description kind="tooltip">JavaRConsole Console Redirection Application</description>
            <description kind="short">
                JavaRConsole enables a user to view the video display of an
                Andromeda computer equipped with a service processor.  It also enables
                the user to redirect his local keyboard, mouse, CD-ROM and floppy drives to
                the remote computer to give him complete control over the remote machine.
            </description>
        </information>
        <security>
            <all-permissions/>
        </security>
        <resources>
            <j2se version="1.5+"/>
            <jar href="Java/JavaRConsole.jar"/>
            <jar href="Java/RedirLib.jar"/>
            <property name="DEBUGLIST" value="ui,general,video,threads,cdrom,floppy,dispatcher,hid,scsi,network"/>
            <property name="SEV_WARN" value="ilomrc.log"/>
            <property name="SEV_CRIT" value="ilomrc.log"/>
        </resources>
        <resources os="Linux" arch="i386">
            <nativelib href="Java/linuxi386.jar"/>
        </resources>
        <resources os="Windows" arch="x86">
            <nativelib href="Java/win32.jar"/>
        </resources>
        <resources os="SunOS" arch="x86">
            <nativelib href="Java/solarisx86.jar"/>
        </resources>
        <resources os="SunOS" arch="sparc">
            <nativelib href="Java/solarissparc.jar"/>
        </resources>
        <application-desc>
            <argument>8</argument>
            <argument>icn1-bmc</argument>
            <argument>root</argument>
        </application-desc>
    </jnlp>The other file is essentially the same with "icn2-bmc" replacing all
    instances of "icn1-bmc". here is the output of the "diff" command:
    3c3
    < <jnlp spec="1.0+" codebase="https://icn1-bmc:443/">
    <jnlp spec="1.0+" codebase="https://icn2-bmc:443/">
    41c41
    <         <argument>icn1-bmc</argument>
    <argument>icn2-bmc</argument>The command I use to run these files is:
    javaws <filename>The first file runs fine, and opens a remote console to the blade.
    However when I try to run javaws with the second file, it fails to start the
    app, with the foll exception:
    java.lang.NumberFormatException: For input string: "icn2-bmc"
         at java.lang.NumberFormatException.forInputString(Unknown Source)
         at java.lang.Integer.parseInt(Unknown Source)
         at java.lang.Integer.valueOf(Unknown Source)
         at java.lang.Integer.decode(Unknown Source)
         at com.ami.javarconsole.ui.FrameMain.main(FrameMain.java:1326)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at com.sun.javaws.Launcher.executeApplication(Unknown Source)
         at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
         at com.sun.javaws.Launcher.continueLaunch(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)This is unusual, since it was able to parse "icn1-bmc" just fine.
    Similar exception when I replace hostname with the IP address:
    java.lang.NumberFormatException: For input string: "10.0.19.214"
         at java.lang.NumberFormatException.forInputString(Unknown Source)
         at java.lang.Integer.parseInt(Unknown Source)
         at java.lang.Integer.valueOf(Unknown Source)
         at java.lang.Integer.decode(Unknown Source)
         at com.ami.javarconsole.ui.FrameMain.main(FrameMain.java:1326)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at com.sun.javaws.Launcher.executeApplication(Unknown Source)
         at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
         at com.sun.javaws.Launcher.continueLaunch(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)Any clues? Let me know if you need any more information?
    Message was edited by:
    amateurPro

    I was about to post a question in the forums for this same issue, but I thought I'd reply to this thread instead. I am actually getting a fairly consistent error with this code. Here's my scenario:
    I'm running an OSD TS which performs a "Format and Partition Disk" task immediately before an "Apply Operating System" task (well, almost immediately... there are a few tasks for setting custom variables and whatnot in between). The Format
    and Partition Disk task returns a success code. The Apply Operating System task returns these lines (edited for relevance) with the command line "OSDApplyOS.exe /image:PRI00011,1 /target:C: /runfromnet:False":
    'C:\' not a removable drive
    The volume C:\ exists and is a local hard drive.
    The volume C:\ is using a valid file system.
    Windows target partition is 0-1, drive letter is C:\
    Verifying boot volume is NTFS.
    * Boot volume D:\ is not valid: unsupported file system. Please ensure the boot volume file system on the system you are applying the image to is NTFS. The request is not supported. (Error: 80070032; Source: Windows) *
    I am specifying in the Apply Operating System task to apply the OS to a specific logical drive letter (C:). The odd part is that if I reboot the computer and run the task sequence again, it goes through just fine... every time. Thanks for your help.
    * EDIT: I'm running SCCM 2012 R2.

  • JNLP & System Cache

    Hello,
    I have installed a JNLP app into the system cache and it fails to run under the administrator account in Windows XP SP2. But when I install it to the administrator's user cache the JNLP app works fine. Also, if I install the JNLP app to a normal user's cache, an exception appears and it is the same as when trying to run the JNLP app in the system cache when logged in as an administrator. The exception is java.lang.NullPointerException. I should mention that I do not have the source code to the JNLP app, it is a freely available physics simulation, Phet, http://www.colorado.edu/physics/phet/web-pages/index.html. I am trying to distribute it to a school's network, so our physics teacher can utilize it in his classes.
    So does anybody have any ideas why a JNLP app would not work from the system cache, even when logged in as an administrator?
    Thanks

    Hi, I'm having a similar kind of problem. I got the following error when I try to install the application into the system cache. I'm using command line option -system
    General tab
    An error occurred while launching/running the application.
    Title: <title>
    Vendor: <vedor>
    Category: Launch File Error
    Installation failed
    Exception tab
    JNLPException[category: Launch File Error : Exception: null : LaunchDesc:
    <jnlp spec="1.0+" codebase="http://myserver:9080/installer_web/launch/" href="http://myserver:9080/installer_web/launch/installer-ext.jnlp">
      <information>
        <title>Installer</title>
        <vendor>vendor</vendor>
        <homepage href=""/>
        <icon href="http://myserver:9080/installer_web/launch/images/icon.gif" kind="default"/>
        <offline-allowed/>
      </information>
      <security>
        <all-permissions/>
      </security>
      <resources>
        <j2se version="1.5+"/>
        <jar href="http://mysserver:9080/installer_web/launch/resources/app/installer.jar" download="eager" main="false"/>
      </resources>
      <installer-desc main-class="com.fs.launch.core.Welcome"/>
    </jnlp> ]
         at com.sun.javaws.Launcher.executeInstallers(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)
    But I could run the same application using user's cache. (without -system option)
    I configured the system cache using deployment.config and deployment.properties files as follows.
    deployment.config
    deployment.system.config=file:///C:/WINDOWS/Sun/Java/Deployment/deployment.properties
    deployment.system.config.mandatory=true
    deployment.properties
    deployment.system.cachedir=C\:\\WINDOWS\\Sun\\Java\\Deployment
    deployment.javaws.shortcut=ALWAYS
    JNLP file
    <?xml version="1.0" encoding="utf-8"?>
         <jnlp spec="1.0+" codebase="http://myserver9080/installer_web/launch/" href="$$name">
         <information>
         <title>installer</title>
         <vendor>vendor</vendor>
         <homepage href=""/>
         <description>Version 1.0</description>
         <description kind="short">installer</description>
         <icon href="images/icon.gif"/>
                   <icon kind="splash" href="images/splash.jpg"/>
                   <shortcut online="true">
                        <desktop/>
                        <menu submenu="FSOnline"/>
                   </shortcut>
         <offline-allowed/>
         </information>
         <security>
         <all-permissions/>
         </security>
         <resources os="Windows" arch="x86">
         <j2se version="1.5+" maximum-heap-size="250m"/>
         <jar href="resources/app/rmiserver.jar"/>
         <jar href="resources/app/common.jar"/>     
         <jar href="resources/app/bsf.jar"/>     
         <jar href="resources/app/xalan.jar"/>
              <jar href="resources/app/js.jar"/>           
         <nativelib href="resources/app/nativelib.jar"/>
         <property name="java.rmi.server.useCodebaseOnly" value="true" />     
         <extension name="Installer" href="installer-ext.jnlp"/>
         </resources>
         <application-desc main-class="com.fs.learner.core.rmi.FsdsRmiImpl">
              <argument>Main.htm</argument>          
              </application-desc>
         </jnlp>
    extention Installer JNLP
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://myserver:9080/installer_web/launch/" href="$$name">
         <information>
         <title>Installer</title>
         <vendor>vendor</vendor>
    <homepage href=""/>
         <icon href="images/icon.gif"/>
         <offline-allowed/>
         </information>
         <security>
         <all-permissions/>
         </security>
         <resources os="Windows" arch="x86">
              <j2se version="1.5+"/>
              <jar href="resources/app/installer.jar"/>               
         </resources>
         <installer-desc main-class="com.fs.launch.core.Welcome">          
         <installer-desc/>          
    </jnlp>
    Please help. thx

  • The JNLP nightmare - a summary

    our application has the following preconditions:
    * one EAR should work on the lab, the validation and the production environment with no security warnings
    * we have to use 2 jnlp files
    * we use native libraries
    the conclusion we've drawn: this isn't possible with java webstart
    reason:
    1. the application has to be signed. hence the JNLP has to be signed. the current and only way to do this is to create a file JNLP-INF/APPLICATION.JNLP. and this is not a pattern, it's the actual filename. so if you have a start.jnlp, you still need to call the signed one APPLICATION.JNLP. this eliminates the possibility to have 2 jnlp files, since calling the not-signed-one doesn't even create a warning, but it creates an error message
    2. the usage of placeholders like "$$codebase" is impossible since the signed jnlp file and the one from the webserver can never be identical. the binary comparison fails because the one from the webserver has eg the resolved hostname while the signed one of course has the placeholders. you could remove the placeholders by hardcoding the urls, but this eliminates the possibility of using the same ear in lab, val and prod environment.
    3. since we have to use native libraries, we need to use the <security><all-permissions/></security> tags. this of course forces a certificate validation and because of the above we run into warnings
    question: does anyone know a way to create a securitymanager/policy file which allows access to everything without getting a warning when you download a jnlp file? leave the security concerns aside, the question is if it is possible at all.
    hope this might help others to not waste hours and hours of research only to find out that webstart is very limited
    Edited by: user8995776 on Oct 1, 2010 4:55 AM

    thank you, i know that link, been through it already during research.
    and thank you for your consideration. i'd be glad if you find something that we missed. here's the jnlp code:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="$$codebase" href="$$name">
      <information>
        <title>Title</title>
        <vendor>Vendor</vendor>
        <homepage href="http://www.homepage.com"/>
        <description>Description</description>
        <description kind="short">[PENDING]</description>
        <icon href="$$codebase/../icons/icon.gif"/>
        <icon kind="splash" href="$$codebase/../icons/welcome.png"/>
        <offline-allowed/>
      </information>
      <security>
        <all-permissions/>
      </security>
      <resources>
        <j2se version="1.5+" java-vm-args="-Xmx300m"/>
        <jar href="myapp.jar"/>
        <jar href="log4j-1.2.15.jar"/>
        <jar href="commons-lang-2.4.jar"/>
        <jar href="commons-cli-1.2.jar"/>
        <jar href="jawin-stubs.jar"/>
        <jar href="jawin.jar"/>
        <jar href="jacob.jar"/>
        <nativelib href="jacob.dll.jar"/>
        <jar href="jbossall-client.jar"/>
        <jar href="swing-layout-1.0.jar"/>
        <jar href="ognl-2.6.7.jar"/>
        <nativelib href="jawin.dll.jar"/>
       </resources>
       <application-desc main-class="com.vendor.MainApp">
        <argument>-param</argument>
        <argument>arg</argument>
      </application-desc>
    </jnlp> in addition, here's a related bug:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6653241
    and the relevant source code part from java itself:
       private static final String SIGNED_JNLP_ENTRY = "JNLP-INF/APPLICATION.JNLP";
        /** Returns true if the JNLP file is propererly signed - otherwise false
         *  Only applications that request unrestricted access needs to be signed
        static private byte[] getSignedJNLPFile(LaunchDesc ld, boolean forceMain)
        throws IOException, JNLPException  {
            if (ld.getResources() == null) return null;
            JARDesc mainJar = ld.getResources().getMainJar(forceMain);
            if (mainJar == null) return null;
            // Lookup main JAR file in cache - should already have been downloaded
            // at this point
            JarFile jarf = null;
            try {
                // pass in false to JarFile ctor so no verification will be done to
                // minimize performance impact
                jarf = new JarFile(DownloadEngine.getCachedResourceFilePath(
                    mainJar.getLocation(), mainJar.getVersion()), false);
                JarEntry sjfe = jarf.getJarEntry(SIGNED_JNLP_ENTRY);
                if (sjfe == null) {
                    // Search no case sensitive
                    Enumeration allnames = jarf.entries();
                    while(allnames.hasMoreElements() && sjfe == null) {
                        JarEntry jfe = (JarEntry)allnames.nextElement();
                        if (jfe.getName().equalsIgnoreCase(SIGNED_JNLP_ENTRY)) {
                            sjfe = jfe;
                // No entry found
                if (sjfe == null) {
                    return null;
                // Read contents of signed JNLP file into bytearray
                byte[] signedJnlp = new byte[(int)sjfe.getSize()];
                DataInputStream is = new DataInputStream(jarf.getInputStream(sjfe));
                is.readFully(signedJnlp, 0, (int)sjfe.getSize());
                is.close();
                return signedJnlp;
            } finally {
                if (jarf != null) {
                    jarf.close();
        }

  • Mapping problem of JnlpDownloadServlet from .Jnlp file

    Hello All,
    1. I am trying to run a java web start application, i am using tomcat 5.5.20 server. I am using the JnlpDownloadServlet to use the $$codebase and $$name to dynimically code the path to the jar's and the jnlp file.
    Here is what i have done:
    Here i have a JnlpDownloadServlet in a seperate folder called (D:/apache-tomcat-5.5.20/webapps/online/server1/WEB-INF/lib/jnlp-servlet.jar).
    2. Now i am placing my .jnlp and my application jar's in a seperate folder called *"client1"* (D:/apache-tomcat-5.5.20/webapps/online/client1/)
    I need to have the client1 and server1 folders and i have to map the servlet to the jnlp file, because i want to keep my jars's and the servlet in a seperate folders.
    3. I have the web.xml file in WEB-INF folder.
    4. web.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
    <servlet>
    <servlet-name> JnlpDownloadServlet</servlet-name>
    <servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    *<url-pattern>../client1/*.jnlp</url-pattern>* *<!-- /* I am having problem here, i think */ -->*
    </servlet-mapping>
    </web-app>
    Myapp.jnlp:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+"
    codebase="$$codebase"
    href="$$name">
    <information>
    </information>
    <resources>
    <j2se version="1.6+"/>
    <jar href="$$codebase/XXXXXX.jar" main="true" download="eager"/>
         <jar href="$$codebase/XXXX.jar" download="eager"/>
         <jar href="$$codebase/XXXXX.jar" download="eager"/>
    <nativelib href="$$codebase/XXX.jar" />
    </resources>
    </jnlp>
    While i run the application. i get the following error:
    Error occured when trying to run a Java web start application
    BadFieldException[ The field <jnlp>codebase has an invalid value: $$codebase,$$codebase]
         at com.sun.javaws.jnl.XMLUtils.getAttributeURL(Unknown Source)
         at com.sun.javaws.jnl.XMLUtils.getAttributeURL(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)
    I need to resolve the mapping issue, because the servlet is not running and the codebase and href variables are not populated.
    Thanks in Advance.

    Hi Peter,
    to use messages of two different SWCVs in a BPM you need to create a based on relationship between the two SWCVs in SLD. BPM restricts object usage to the SWCV in which the BPM itself resides, so to solve your problem go to the SLD content maintenance and select your SWCV of your BPM, click on Usage Dependencies, then select Define Dependencies, choose Installation Time and then the SWCV in which the other objects reside, click save and your done. You might need to reimport the SWCV to the repository to update the relationship there. It is updated as soon as you can see Basis Objects in the SWCV tree.
    best regards
    Christine

  • Launch JNLP file which required full-qualified domain name

    Hi all,
    My suitation is like this:
    I need to launch an JNLP file which I need a domain name in order to access it: (using JDK 1.5.0_11)
    e.g. http://hostname.domain.domain/xxx/yyy/zzz.jnlp
    But when it try to access one of the jar file, it will refer to http://hostname/aaa.jar that lead to UnknownHostException.
    Note: (I already use the full domain name to launch the JNLP file..)
    Any one have idea on what to do? And I have no option to change the network setting to support solely "hostname" without domain.
    Here's the "little modified" Launch file in the error dialog (as some details can't be disclosed)
    [Launch path]:
    http://hostname.domain.com:12718/CMTE-3rdParty/tibco/7.5.2/tibco.jnlp
    [Error message]:
    Unable to load resource: http://hostname:12718/CMTE-3rdParty/tibco/7.1.2/tibco.jnlp
    [Launch File shown in error dialog]:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp codebase="http://hostname:12718/CMTE-3rdParty" href="tibco/7.1.2/tibco.jnlp">
    <information>
    <title>Tibco</title>
    <vendor>Multicast messaging library</vendor>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <jar href="tibco.jar" version="7.5.2"/>
    </resources>
    <resources os="Windows" arch="x86">
    <nativelib href="tibco-libs.jar" version="7.5.2"/>
    </resources>
    <component-desc/>
    </jnlp>
    Thank you very much.

    You should change the codebase (declared in the jnlp tag) to http://hostname.domain.com:12718/CMTE-3rdParty
    That's how jnlp works, URL are made up as codebase+href.
    You'd better use absolute URL for the jnlp href (not for resources).
    And, last but not least, as Andrew would say: use JaNeLa (look for a link almost anywhere in the forum).
    Bye.

  • Can the JNLP and the jarred application be on different servers

    Can the JNLP and the jarred application be on different servers? If so, how would I alter my JNLP file to include the url of the second server?
    The reason I ask this is that my app is being uploaded to a shopping cart, to be available for purchase. The problem is that this shopping cart allows ONLY one upload for each item that's available for purchase, and the vendor of my shopping cart say that for security reasons I cannot store files in other places on that server. The problem is that I need the JNLP and the JAR for download. I thought that the simplest solution is to put the JAR on a different server, and in the jnlp specify the URL of the jar. Is that possible? Or, do you see another solution?
    I appreciate your help - I REALLY need to take care of this ASAP!
    Here's my jnlp:
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp
    spec="1.0+"
    codebase="http://server_where_jnlp_is/subdir/"
    href="myjnlp.jnlp">
    <information>
    <title>Title</title>
    <vendor>vendor</vendor>
    <homepage href="http://www.homepage.com" />
    <description>bla bla bla</description>
    <icon href="icon.gif"/>
    <offline-allowed/>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.2+" />
    <jar href="myapp.jar"/>
    <nativelib href="libs.jar"/>
    </resources>
    <application-desc />
    </jnlp>

    I worked it out! What I did was I changed the jar href and the nativelib href to point to a different server
    eg:
    changed <jar href="myapp.jar"/>
    to
    <jar href="http://www.otherserver.com/myapp.jar"/>

  • Jnlp does not load on  different machine: Please help

    Hi
    I have a machine x where I've installed and am running tomcat 4.1.24 server. I installed my war file with the jnlp in the right directory and my jnlp loads and works fine on machine x.
    However when I try to lanch jnlp from different machine say Y ( I have webstart installed here too) .. via my broswer ...it launches webstart but gives a
    download error - connection refused error. cannot download jnlp.
    I tried adding the mime type to the web.xml of my application too.
    Here is my jnlp
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://localhost:8080/fileviewer" href="index.jnlp">
    <information>
    <title>File Viewer</title>
    <vendor>IBM developerWorks</vendor>
    <homepage href="index.html"/>
    <description>File Viewer</description>
    <description kind="short">File Viewer</description>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.4"/>
    <jar href="fileviewer.jar"/>
    <nativelib href="swt-lib.jar"/>
    </resources>
    <resources os="Windows">
         <jar href="swt-win32.jar"/>
    </resources>
    <resources os="Linux">
         <jar href="swt-linux.jar"/>
         <jar href="swt-pi.jar"/>      
    </resources>
    <application-desc main-class="org.eclipse.swt.examples.fileviewer.FileViewer"/>
    </jnlp>

    People...dont bother I fixed the problem
    I just had to change the localhost to point to my host name instead in the jnlp.

  • Java.lang.reflect.InvocationTargetException Caused by: java.lang.UnsatisfiedLinkError

    Hi all,
    I'm using jdic web browser (windows version) and customizing it for a project. I want to make an executable jar file. Since I'm using NetBeans 6.7.1, I'm getting a jar file in dist folder. Bt when I run it it does not open the jdic browser.
    Then I tried java web start and make a jnlp file. When it tries to run I get the below error..
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javaws.Launcher.executeApplication(Launcher.java:1293)
    at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1239)
    at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1086)
    at com.sun.javaws.Launcher.run(Launcher.java:105)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.UnsatisfiedLinkError: no jdic in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.jdesktop.jdic.browser.internal.WebBrowserUtil$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jdesktop.jdic.browser.internal.WebBrowserUtil.loadLibrary(Unknown Source)
    at org.jdesktop.jdic.browser.internal.WebBrowserUtil.getDefaultBrowserPath(Unknown Source)
    at org.jdesktop.jdic.browser.BrowserEngineManager.selectEngine(Unknown Source)
    at org.jdesktop.jdic.browser.BrowserEngineManager.getActiveEngine(Unknown Source)
    at AgentBrowser.Browser.jbInit(Browser.java:362)
    at AgentBrowser.Browser.<init>(Browser.java:99)
    at AgentBrowser.Browser.main(Browser.java:117)
    ... 9 more
    http://java.ittoolbox.com/groups/technical-functio...ocationtargetexception-1710507
    A person shared his view on "java.lang.reflect.InvocationTargetException" but I'm not quite sure about that since the browser works nicely if I run through NetBeans. (running the project through NetBeans).
    I dnt know how does this library path problem occurs
    please help me..!!
    thanks in advance

    Yeah..! it's working :)
    I just copied jdic files (jdic.jar,jdic.dll, IeEmbed.exe etc) into dict/lib/ folder and now it is working.

  • Urgent! The field jnlp codebase has an invalid value: $$codebase

    Hello All,
    1. I am trying to run a java web start application, i am using tomcat 5.5.20 server. I am using the JnlpDownloadServlet to use the $$codebase and $$name to dynimically code the path to the jar's and the jnlp file.
    Here is what i have done:
    Here i have a JnlpDownloadServlet in a seperate folder called (D:/apache-tomcat-5.5.20/webapps/online/server1/WEB-INF/lib/jnlp-servlet.jar).
    2. Now i am placing my .jnlp and my application jar's in a seperate folder called *"client1"* (D:/apache-tomcat-5.5.20/webapps/online/client1/)
    I need to have the client1 and server1 folders and i have to map the servlet to the jnlp file, because i want to keep my jars's and the servlet in a seperate folders.
    3. I have the web.xml file in WEB-INF folder.
    4. web.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
    <servlet>
    <servlet-name> JnlpDownloadServlet</servlet-name>
    <servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    *<url-pattern>../client1/*.jnlp</url-pattern>* *<!-- /* I am having problem here, i think */ -->*
    </servlet-mapping>
    </web-app>
    Myapp.jnlp:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+"
    codebase="$$codebase"
    href="$$name">
    <information>
    </information>
    <resources>
    <j2se version="1.6+"/>
    <jar href="$$codebase/XXXXXX.jar" main="true" download="eager"/>
         <jar href="$$codebase/XXXX.jar" download="eager"/>
         <jar href="$$codebase/XXXXX.jar" download="eager"/>
    <nativelib href="$$codebase/XXX.jar" />
    </resources>
    </jnlp>
    While i run the application. i get the following error:
    Error occured when trying to run a Java web start application
    BadFieldException[ The field <jnlp>codebase has an invalid value: $$codebase,$$codebase]
         at com.sun.javaws.jnl.XMLUtils.getAttributeURL(Unknown Source)
         at com.sun.javaws.jnl.XMLUtils.getAttributeURL(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)

    yes. I am sure.
    The JnlpDownloadServlet takes the URL address we enter in the browser as codebase and the variable $$codebase is assigned the value which is taken dynamically.
    From Developer's Guide:
    Processing of JNLP files
    The JnlpDownloadServlet will automatically macro-expand certain template values in a JNLP file and replace them with URLs that are specific to the current request. This will enable JNLP files to be written and deployed without containing hard-coded URLs.
    Macro expansions
    The servlet will automatically substitute certain fixed keys in the JNLP file (prefixed with $$) with URLs that are based on the current request. The keys are designed so location-independent WAR files can be created and deployed into a Web container.
    The table below shows the 4 keys that the servlet will look for and substitute:
    Pattern Value
    $$codebase Complete URL for request, except name of JNLP file
         $$name Name of the JNLP file
    $$context Base URL for the Web Archive
         $$site     Web site address without the WAR context portion               
    For example: Consider the example1 WAR file. Lets assume that it has been deployed at the following location: http://www.mytool.com/tool. Thus, a request to http://www.mytool.com/tool/app/launch.jnlp will return the JNLP file. The values of the macro-expanded keys would be:
    $$codebase = http://www.mytool.com/tool/app/
    $$name = launch.jnlp
    $$context = http://www.mytool.com/tool/
    $$site = http://www.mytool.com/
    The servlet does not validate the format of the JNLP file nor that the XML is well-formed. The value substitution is purely textual.

  • JNLP Deployment Problem

    I need to deploy a JavaFX Applet on a Mac running 1.6.0_33. But so far, I've been unable to do this successfully. Here's what I've tried:
    1. I generated a JNLP file and using the generated html page, tried to view the applet. Unfortunately, the dtjava script indicated that I didn't have the correct setup. I was hoping that it would simply download the jfxrt.jar with the appropriate native libraries from Oracle's site, but that didn't happen.
    2. I modified the JNLP to serve up an application instead of an applet, and tried accessing the JNLP directly instead of through the web page.
    2. I tried serving up the jfxrt.jar and the native libraries separately using an os-specific resources tag in jnlp -- one jar for the native libs, and keep the original jfxrt.jar (that didn't work -- "java.lang.UnsatisfiedLinkError. Unable to load NativeLibLoader")
    3. I tried updating jfxrt.jar with the native libraries (that didn't work -- same error message).
    4. I tried copying the new jfxrt.jar file into *$JAVA_HOME/lib* (and not serving the jar file), but it couldn't find javafx.application.Application
    5. I tried changing the extended file attributes (there's an attribute com.apple.quarantined) that's associated with the files and I thought that this might be preventing the jfxrt.jar from being accessed. But that didn't work either -- same error.
    6. I've tried adding a javafx.runtime.path property to the j2se entry in the JNLP -- same error.
    So my question is, how did people deploy JavaFX apps via webstart before Java 7 when the JRE did not include the the javafx runtime jars and libraries? Is there some other location that I should place the jfxrt.jar?

    In answer to your earlier comment about letting you know how well switching from applet to application works.
    The application "launches" but doesn't startup. The application name appears next to the Apple menu, and it looks like it's trying to startup, but doesn't get any further. The thread dump shows that its executing the call to the Application.launch() method and then sits there.
    at sun.misc.Unsafe.park(Native Method)
         - parking to wait for  <7f3711c38> (a java.util.concurrent.CountDownLatch$Sync)
         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:969)
         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
         at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
         at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:134)
         at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:75)
         at javafx.application.Application.launch(Application.java:209)I'm using maven to build the jar and apparently there's some undocumented "magic" that goes on if you use the javafxpackager. I noticed that a com.javafx.main.Main class is inserted into the jar if I use the packager, and some additional attributes are added to the jar. It might be good at some point to document some of the magic. Especially the stuff that dtjava.js does to the jfx:? tags in order to turn the jnlp into something that is launchable.
    What's odd is that I can run the application from Eclipse without any problem.

  • Java.lang.UnsatisfiedLinkError: textureclear

    we have some 3d charts, and one of the user is having some problems with accessing the chart
    he has JRE 1.5_05 installed and java_home is not set on his machine. we have jnlp file with java3d as library in it like
    <extension href="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp"/>
    when he tries to access 3d charts he gets following exceptions
    Exception in thread "J3D-Renderer-1" java.lang.UnsatisfiedLinkError: textureclear
    at javax.media.j3d.Canvas3D.textureclear(Native Method)
    at javax.media.j3d.Renderer.doWork(Renderer.java:1053)
    at javax.media.j3d.J3dThread.run(J3dThread.java:250)
    please any can give me any clue. what could be wrong here,
    Thanks

    Hi Jinyu,
    Here are the things I was checking for to fix this error.
    I made sure the xsu12.jar and classes12.zip file were in the classpath, and they are.
    I made sure the directory that contains the libocijdbc8.so library was in the classpath. It wasn't so I added it.
    I added the directory that holds the libocijdbc8.so library to the LD_LIBRARY_PATH env variable.
    Thanks,
    John

Maybe you are looking for