Jnlp .jar download
Hi,
I am making a java web start application. I have so many jar files, which are being used by that application...I am adding the jar files like this:
<jar href="lib/appframework-1.0.3.jar"/>
<jar href="lib/swing-worker-1.1.jar"/>
Actually When I try to run the application offline, it works fine. But when I try to run the application online, it gets very slow...it takes time to download jar files(I think so).....and it takes five minutes to execute a functionality by the application. I don't know how can I fix this. The size of some of the jar files in the resources are big...
Please let me know the solution of this problem!
Thank you.
Please post full JNLP file here.
How big is "big" here?
Do you have <update check="background"> in your JNLP file?
Debug hints:
* Enable java console, enable verbose tracing (http://download.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html#gcexdf)
and see what is going on when application takes longer than you expect
* Use http sniffer tools to trace network connections on startup (e.g. wireshark). Your goal is to have 0 network connections when application is cached.
Similar Messages
-
Jar download not working over dial up
Hey,
Our webstart application works just fine while connected to the lan at work. The various jars required by the application are downloaded without any problems.
However, when I try to access the same application over dial up (I have tried netzero and aol), the jar download fails in a rather weird fashion.
On clicking on the link for the application, the main jar e.g. main-application.jar downloads just fine, but the next jar in line fails with the following message
Unable to load resource: https://server.com:443/application/lib/axis.jar
Exception
JNLPException[category: Download Error : Exception: java.net.SocketException: Unexpected end of file from server : LaunchDesc: null ]
at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
at com.sun.javaws.Launcher.downloadResources(Unknown Source)
at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Wrapped Exception
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
at com.sun.javaws.net.BasicNetworkLayer.doGetRequest(Unknown Source)
Now, when i click on the application launch again, it proceeds to download the next jar e.g axis.jar in this case without a problem, but it will fail on the next jar
snippet from my jnlp file
<jar href="application.jar"/>
<jar href="lib/axis.jar"/>
<jar href="lib/castor-0.9.5.2-xml.jar"/>
<jar href="lib/commons-beanutils-1.5.jar"/>
<jar href="lib/commons-collections-2.1.jar"/>
Note : All of this works fine when im not using dial up to connect.
Does anyone have any ideas ?
Any help is greatly appreciatedpboeykens,
It may definitely be something with my network and/or firewall configuration. I'm just not sure where to look yet.
I have tried modifying apache settings to no avail.
I've tried turning KeepAlives off, changing the keep alive timeout and the max number of keep alives allowed on apache, but none of these setting changes had any effect on the jar download.
If you have any suggestions for what I might look at as far as my firewall settings, then I can take that to my security department.
My next step is to try and enable the debug logging with webstart to maybe get a better idea of why it thinks that no jar is available.
Thanks -
Custom JnlpDownloadServlet: JAR downloads occur twice?
I've implemented a custom version of the JnlpDownloadServlet, because I primarily want my own handling of the URL query string. I have it setup to handle both JNLP and JAR downloads and all seems to work - the JNLP apps and JARs download then start and that is good. For simplicity I initially left out jar-diffing, versioning as well as pack200 handling, but decided to try including pack200 handling just now. Again, I seem to have it running fine, but, in the process of setting this up, I found (by displaying the DownloadRequest within the servlet's handleRequest method) that the JNLP client (Web Start) appears to be:
1) on an initial JNLP application launch, requesting each JAR twice
2) on subsequent JNLP launching (with no cache clear), requesting each JAR once more
In each case, the pack200 JAR is found and sent. As far as I can tell, Web Start is functioning ok, but I am mystified by this apparent multiple and repetitive downloading of JARs. Is this expected behaviour? Is it something that I need to take care of, like maybe with some sort of versioning or whatever? Is there some sort of debug tracing I can set in the Web Start client to see what's going on?Looks like I get to answer my own. J
I noticed JnlpDownloadServlet does not implement doHead(). It would make sense if it were, so I tried implementing it within my own servlet, and once deployed, noticed that Java Web Start client uses HEAD requests frequently, so this all makes sense now from point of view of Web Start.
But it looks like there is an omission within JnlpDownloadServlet - it needs a doHead() implementation. Consequently, anyone using JnlpDownloadServlet out of the box from Java 5 and 6, will be causing Web Start clients that use their deployment to always get JARs whether they are in local jar cache or not. I suppose that Web Start client tries HEAD request first, and gets nothing, and so tries GET request. -
Where do you get jnlp.jar for Mac Leopard 10.5.5
Hello,
I am trying to use Persistence in JNLP on a Mac 10.5.5 with either 1.5 or 1.6. I have searched
my local disk the Mac developer web site and this website for "jnlp java Mac Leopard" no useful results.
Where can I get a jnlp.jar file that works on a Mac?
RinaldoI was able to get the question answered on the mailto:[email protected] list.
My friend http://www.google.com/search?q=jnlp.jar+mac+java&ie=utf-8&oe=utf-8&aq=t answered it.
Greg also provided some very useful information, especially the mdfind javaws.jar command
http://lists.apple.com/archives/Java-dev/2008/Nov/msg00052.html
I see that in JDK 1.5, javaws.jar is included. For now I will assume that the javaws.jar classes have been moved to javaws.jar
jar tvf ./Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/javaws.jar | grep jnlp
0 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/
3147 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ApiDialog.class
1626 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletAudioClip$1.class
3922 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletAudioClip.class
1377 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$1.class
990 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$2.class
1329 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$AppletContainerContext$1$1.class
1452 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$AppletContainerContext$1.class
2942 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$AppletContainerContext.class
1551 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$AppletContainerStub.class
710 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer$LoadImageAction.class
4841 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainer.class
234 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/AppletContainerCallback.class
1362 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/BasicServiceImpl$1.class
1158 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/BasicServiceImpl$2.class
992 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/BasicServiceImpl$BasicServiceBrowser.class
2397 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/BasicServiceImpl.class
1279 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/CheckServicePermission.class
868 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/ClipboardServiceImpl$1.class
1668 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/ClipboardServiceImpl$2.class
2787 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/ClipboardServiceImpl.class
1159 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$1.class
1652 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$10.class
1318 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$2.class
1474 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$3.class
1679 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$4.class
2519 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$5.class
1739 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$6.class
1942 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$7.class
1517 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$8.class
1445 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$9.class
1398 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$DefaultProgressImpl$1.class
2914 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$DefaultProgressImpl.class
2254 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl$ProgressHelper.class
8288 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/DownloadServiceImpl.class
900 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtendedServiceImpl$1.class
1051 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtendedServiceImpl$2.class
3188 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtendedServiceImpl.class
707 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtensionInstallerServiceImpl$1.class
961 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtensionInstallerServiceImpl$2.class
711 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtensionInstallerServiceImpl$3.class
5918 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/ExtensionInstallerServiceImpl.class
787 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$1.class
820 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$2.class
928 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$3.class
791 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$4.class
792 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$5.class
1002 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl$6.class
4353 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileContentsImpl.class
2155 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileOpenServiceImpl$1.class
2323 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileOpenServiceImpl$2.class
1144 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileOpenServiceImpl$WindowsAltFileSystemView$FileSystemRoot.class
3017 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileOpenServiceImpl$WindowsAltFileSystemView.class
2974 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileOpenServiceImpl.class
2847 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileSaveServiceImpl$1.class
3257 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/FileSaveServiceImpl.class
1087 Fri Sep 05 10:32:48 EDT 2008 com/sun/jnlp/ImageCache.class
1937 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPCachedJarURLConnection$1.class
5559 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPCachedJarURLConnection.class
940 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPClassLoader$1.class
928 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPClassLoader$2.class
1285 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPClassLoader$3.class
12413 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPClassLoader.class
2555 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPFileFilter.class
6074 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JNLPRandomAccessFileImpl.class
788 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JnlpLookupStub$1.class
2918 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/JnlpLookupStub.class
2044 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/MeteredFileOutputStream.class
938 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$1.class
1022 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$10.class
1805 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$11.class
1023 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$2.class
845 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$3.class
877 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$4.class
981 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$5.class
875 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$6.class
871 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$7.class
885 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$8.class
974 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl$9.class
7991 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PersistenceServiceImpl.class
809 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PrintServiceImpl$1.class
1189 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PrintServiceImpl$2.class
969 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PrintServiceImpl$3$1.class
1717 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PrintServiceImpl$3.class
2986 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/PrintServiceImpl.class
1441 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/SingleInstanceServiceImpl$1.class
1673 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/SingleInstanceServiceImpl$TransferListener.class
3938 Fri Sep 05 10:32:50 EDT 2008 com/sun/jnlp/SingleInstanceServiceImpl.class
0 Fri Sep 05 10:32:48 EDT 2008 javax/jnlp/
258 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/BasicService.class
251 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/ClipboardService.class
1392 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/DownloadService.class
349 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/DownloadServiceListener.class
309 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/ExtendedService.class
659 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/ExtensionInstallerService.class
598 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/FileContents.class
370 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/FileOpenService.class
430 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/FileSaveService.class
1451 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/JNLPRandomAccessFile.class
688 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/PersistenceService.class
350 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/PrintService.class
994 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/ServiceManager.class
303 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/ServiceManagerStub.class
185 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/SingleInstanceListener.class
250 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/SingleInstanceService.class
472 Fri Sep 05 10:32:50 EDT 2008 javax/jnlp/UnavailableServiceException.class -
Why isn't jnlp.jar signed by Sun?
The jnlp.jar in the developer pack is not signed with Sun's certificate. Why is that? An omission or intentional?
If I'm delivering my app signed with my Verisign cert, I have to now deliver jnlp.jar also signed with my cert, right?
Thx,
MaxThe jnlp.jar is part of Java Web Start, so no - you don't have to sign and supply it, the JWS install takes care of it for you.
Cheers,
Gavin -
Author: bonnaire
Hello,
I wanted to make an application usable through JavaWebStart technology, it
needs to
read and write files on the local disk so, as I have seen, I need the
FileOpenService and FileSaveService of the javax.jnlp API.
But I can't find jnlp.jar ! I use jdk1.4 and I have installed the latest javaWebstart
pack :
javaws-1_0_1_02-win-int.exe.
Can you tell me what have I missed ?
Thanks
RichardThe jnlp.jar can be found in the Webstart Developers Pack it is not part of the Webstart Client.
On the other hand if your application needs access to the disk you don't need those services. Signing your Jar Files and granting all-permission should do the trick -
Jnlp file downloads then opens in TextEdit
Have multiple Macs running 10.5.7 w/latest software update. Each trying to use the same web application. Web app downloads a .jnlp file. For most Macs, it launches Java and life is good. On a lone Mac (so far), the .jnlp file downloads, but is opened by TextEdit. Check File Info, and it's associated with TextEdit, so there's the culprit. On the working Macs, the file is associated with Java Web Start.app. So, I figured I'd change the association on the Mac that's broken, but I can't find Java Web Start.app. It doesn't show up in Spotlight, so I use the locate command in Terminal and find it listed as being found in /Applications/Java. This folder does not exist on any of the Macs in this scenario. Where is it?! How do I fix the association for .jnlp files to be Java Web Start.app?
Thanks!I have the same problem. After running the latest Java update, Java Web Start is gone. I have Xcode installed on my machine, but still don't have Java Web Start anywhere on my drive.
I attempted to restore it to /Applications/Utilities/Java using Time Machine, but when I launched it, it merely crashed.
I understand that part of the Java update was to patch a vulnerability that could be exploited through Java applications launched from the web, but I was under the impression that there was a fix that didn't simply involve disabling Java Web Start. Is there a new version of Java Web Start out there that doesn't crash with the new Java update? Alternately, is there a way to run a jnlp file without a working version of Java Web Start?
I have a program that I absolutely need to have running in the next 30 minutes -- which doesn't give me enough time to roll back the whole update. Is it too much to expect Apple to fix what they broke with this update?
-JMP -
For the past few days my n96 will not allow JAR downloads to reach more than 3/4's of the total download .It then says, "unable to download." I know it's not the apps or games i'm trying to download because a few of them were things I had downloaded successfully a few days earlier but deleted for one reason or another. Since I knew they had no problem being downloading I used them to see if the problem was the new downloads and it isn't. Sis files seem to have no problem but jar files won't download anymore. Any suggestions? thanks JL2
i have the same problem, i was trying to download from Ovi and i got an error Jar and jar file aren't the same size... like what does that mean???? i've requested help, so if i get an answer i'll pass it on to you.
-
HTTP Jar Download Read Timeout
For some reason I've been having a hard time finding the setting which controls the read timeout for JAR downloads. At the moment it looks like it will never timeout such that if I am about to download a jar and the server goes down, the read will never timeout.
TIAYeah, jar downloading will use URLConnection and HTTP by default. What is not clear to me is if you can set the read timeout value in 1.4.2 and if my presumption is correct that if one does not set a read timeout value that a client could hang on a read indefinitely. I don't have the source to any concrete subclass of HttpUrlConnection that has a settable read timeout value.
-
Hello to all,
i am proving to write code for using with webstart and have a problem. I want to my aplication unzip the jar files that were downloaded but, where does webstart download them? I have searched and i have seen that a structure od folder are created depending of the domain and port. How can i compound the whole tree? Webstart rename some folders and the jar files too. I need the whole path to pass it to my application to catch the jar's from the correct path. And.. is it possible to change the download folder?
Another question:
Tracing my program, i have seen that webstart doesn't run my program in the jar's download folder. It runs it in my user desktop folder, and so, my program doesn't find any jar to unzip there. Are any way to tell to webstart where to run the application? I.d. the jar download folder.
Thak you very much for you attentionI run into the same problem. The user of the application will need to alter some files to use the
application. There are two possible solutions:
-Store the configuration files on the server
-Store them locally
Storing them on the servers would be nice however:
->There will have to be a server that automatically stores & sends back files as requested by
the user. Implementing such a server is not trivial on one hand and second, depending on
the network speed and file size can be quite slow. Also, there will have to be a login necessary
to access files and ...
Ok, I decided to store them locally. I am just about to do it, so that's the plan:
-> ZIP the files to be unpacked on the local system and put them into a .jar file sent as resource
when loading the Java Web Start Application. Accessing will be easy and can be done with:
this.getClass().getClassLoader().getResourceAsStream("PATH TO ZIP FILE");
The important part is to put the zipped files again into a jar file, that way, unzipping can be
done easy without having to find the jar file on the local file system! -
JNLP jar (re)download
Hello All ,
I might be having a fundamental misconception here ; if so , please help me put it right.
I have a JNLP file which is automatically generated (automatic here actually indicates that a script will populate a particular field in the file (which holds references to some jar files). The rest of the file does not change)).
I am using the <version> attribute of the <jnlp> tag to indicate the version of the application.
My expectation is that each time this version attribute changes , the .jnlp file wlil be re-downloaded and also will be re-downloaded each of the jar files it references.
Below is a representative code sample :
<code>
<?xml version="1.0"; encoding="utf-8"?>
<jnlp
spec="1.0+";
codebase="$$codebase"
href="$$name"
version="%VERSION%">
<!-- version to be filled in by a script-->
<information>
. <!-- Some information here -->
</information>
<security><all-permissions/></security>
<resources>
<j2se version="1.6+"; initial-heap-size="32m" max-heap-size="512m" />
<jar href="my.jar";/>
<jar href="my2.jar";/>
<property name="property1" value="value1" />
<extension href="another.jnlp"; /> <!-- another .jnlp contains a list of jars that is generated by another script -->
</resources>
<application-desc main-class="my.main";/>
</jnlp>
</code>
The following scenario is what I am trying to implement :
a)Deploy the jnlp application on a server and access it by using http://localhost:XXXX/myapp
b)It downloads and installs and runs.
c)I close the app.
d)I now change one of the jar files referenced in another.jnlp and also some contents in my.jar and my2.jar.
e)I now repeat steps a) and b) (the .jnlp files "version" attributes are updated accordingly)
EXPECTATION : The jnlp file is re-downloaded and so are all the referenced jars[of particular interest my2.jar and any referenced jars in another.jnlp].
OBSERVATION : The jnlp file is re-downloaded but the OLD jars are still being used (I know its the old jars because I change something in the jar on the server and the change is not reflected in the client browser).
If I clear the java cache by doing a "javawas - uninstall" , I get the behaviour I seek in EXPECTATION ; however I do not want to clear the cache everytime I update some jar or other ; I want jnlp to detect that a jar has changed and re-download it.
How do I go about achieving this?elie_nasrani wrote: I have a JNLP application which will run over internet , my problem is that anyone can go to the url and launch the application and download all the jars, before even logging in, i'm worried about using this for Denial of service.
is there a way that i can control the jar files download time, like only download the necessary jar first and when jars are needed will be downloaded eventually
Web start offers lazy downloads, as well as the DownloadService* (DS) to help with this kind of problem.
'Lazy' means the resource is only downloaded when needed, but using the DS offers even greater control, even to the extent of manually blocking a download - if needed.
* e.g. of the Download service, be sure to follow the links.
<http://www.physci.org/jws/#ds>
As far as 'signing' goes, I cannot imagine how that would help for your problem. Not only are signed Jar's (at least slightly) larger, but they can also be used by JWS apps. coming from other domains! If your app. is sandboxed, I strongly recommend keeping it as unsigned code.
Why is your JNLP file exposed to the general public? Don't the users have to log in before they can get to the page with link to the application JNLP?
If that is the case, the only chance for users who are not logged in to launch it, is if a friend sends them a direct link to the JNLP file.
As an aside, I generally do not have time to look at posts with no 'dukes' assigned (see links at upper left), if getting a solution is important to you, it is a good idea to add some. -
Control JNLP jar files download time
Hello,
I have a JNLP application which will run over internet , my problem is that anyone can go to the url and launch the application and download all the jars, before even logging in, i'm worried about using this for Denial of service.
is there a way that i can control the jar files download time, like only download the necessary jar first and when jars are needed will be downloaded eventually
Any Help would be appreciaetd
regardselie_nasrani wrote: I have a JNLP application which will run over internet , my problem is that anyone can go to the url and launch the application and download all the jars, before even logging in, i'm worried about using this for Denial of service.
is there a way that i can control the jar files download time, like only download the necessary jar first and when jars are needed will be downloaded eventually
Web start offers lazy downloads, as well as the DownloadService* (DS) to help with this kind of problem.
'Lazy' means the resource is only downloaded when needed, but using the DS offers even greater control, even to the extent of manually blocking a download - if needed.
* e.g. of the Download service, be sure to follow the links.
<http://www.physci.org/jws/#ds>
As far as 'signing' goes, I cannot imagine how that would help for your problem. Not only are signed Jar's (at least slightly) larger, but they can also be used by JWS apps. coming from other domains! If your app. is sandboxed, I strongly recommend keeping it as unsigned code.
Why is your JNLP file exposed to the general public? Don't the users have to log in before they can get to the page with link to the application JNLP?
If that is the case, the only chance for users who are not logged in to launch it, is if a friend sends them a direct link to the JNLP file.
As an aside, I generally do not have time to look at posts with no 'dukes' assigned (see links at upper left), if getting a solution is important to you, it is a good idea to add some. -
Hi,
We are seeing an odd occurence. Our dialup users using Java Web Start are unable to download certain jar files if they are a certain size. For example when we deploy our code we need to verify that it will work over a dialup connection. If it does not work we add an additional file to the jar until we get to a size that works???? We can consistently recreate this. We have expirienced it at two different jar sizes so far (255-265 Kb + 320-330 Kb). We have a work around by adding files until it works but this is a hit or miss type of fix. We use signed jar files. The error is a download error. Any help would be appreciated.
ThanksThe ISP that we recreated the error on was ATT World Net. The error message that we are seeing is:
Category Download Error: Corrupted JAR fiel at <our URL>
ZipException: Error in opening zip file.
We are using version 1.4.2_03 of the JRE. We download 4 separate jar files during the launch of the jnlp. If any of these jars are at the odd sizes previously mentioned it will appear to hang, then after a while we will see the error messages above.
Thanks -
Hello everyone
I have an app for which JRE should come from my server. I have created a servlet to handle my jnlp files (mapped as *.xjnlp) and two file for the application and runtime installer respectively.
Here is an excerpt from the main launch.xjlp
<resources>
<j2se version="WASJRE" href="../JREDownload.xjnlp"/>
</resources>and here is what I have got in JREDownload.xjnlp
<resources>
<j2se version="1.5+"/>
<jar href="lib/WebSphereClientRuntimeInstaller.jar" main="true"/>
<!-- JRE version registration with Java Web Start -->
<property name="com.ibm.websphere.client.jre.version" value="WASJRE"/>
</resources>From what I see it looks like JWS does not even try to access the JREDownload.xjnlp in order to download the WAS Client runtime jar. So I keep getting -
The application has requested a version of the JRE that currently is not locally installed. Java Web Start is unable to automatically download and install the requested version.
Anyone had any experience with this? Any idea is much appreciated
thanksThanks Andrew,
I guess I should have provided more details. What I did was based on the documentation and samples from IBM which requires installing IBM specific JRE in order to run a J2EE client from JWS and provides its own client runtime installer.
Here are my xjnlp files in more details
launch.xjnlp
1. <jnlp spec="1.0+" codebase="$$codebase">
2. <security>
3. <all-permissions/>
4. </security>
5. <resources>
6. <j2se version="1.6" href="../JREDownload.xjnlp"/>
7. <jar href="../lib/WebSphereClientLauncher.jar"/>
8. <jar href="../lib/properties.jar"/>
9. <jar href="SwingCalculator.ear"/>
10. <property name="com.ibm.websphere.client.launcher.ear" value="SwingCalculator.ear"/>
11. </resources>
12. <application-desc main-class="com.ibm.websphere.client.launcher.ClientLauncher">
13. <argument>-CCtrace=yes -CCproviderURL=corbaloc:iiop:xuyvam:2810</argument>
14. </application-desc>
15. </jnlp>JREDownload.xjnlp
1. <jnlp spec="1.0+" codebase="$$codebase">
2. <security>
3. <all-permissions/>
4. </security>
5. <resources>
6. <j2se version="1.5+"/>
7. <jar href="lib/WebSphereClientRuntimeInstaller.jar" main="true"/>
8. <!-- JRE version registration with Java Web Start -->
9. <property name="com.ibm.websphere.client.jre.version" value="1.6"/>
10. </resources>
11. <resources os="Windows">
12. <jar href="AppClient70_Windows.jar"/>
13. </resources>
14. <installer-desc main-class="com.ibm.websphere.client.installer.ClientRuntimeInstaller"/>
15. </jnlp>launch.xjnlp is the one that gets initially requested. At line 6 it requests specific JRE and hrefs to it by pointing to JREDownload.xjnlp. Now, JREDownload is responsible for downloading, installing and registering the IBM's JRE. On line 14 we have <installer-desc> which points to the main class found in the WebSphereClientRuntimeInstaller.jar referenced at line 7. Once installed, this JRE is registered with JWS at line 9.
Note that both xjnlp files are processed by a servlet which basically gets the files, replaces the variables, sets the mime type to jnlp and outputs back into the stream.
Thanks a lot
Aram -
Split applet in multiple jars downloadable on demand
What I'm trying to do is fairly simple, usual and a widespread practice in Flash/Flex/Silverlight. I need to split an applet in multiple modules, then download only the modules the users explicitly requests, and provide a preloader for each download. I think the best way to do this is to pack each module inside separate jar file, then download the jars I need on demand.
But I'm lost. Does the JarURLConnection class provides a way to monitor the download progress of the jar? If not, then I have to use HttpURLConnection? Plus what? A little help please.Please refrain from [multi-posting|http://forums.sun.com/thread.jspa?threadID=5392215].
A better way to achieve this application feature is to launch this applet using Webstart, and specify the other archives as 'lazy' download, then take active control of the downloads using the JNLP API's [DownloadService/Listener|http://pscode.org/jws/api.html#ds] to fetch the Jar's.
This would mean the applet becomes free-floating (not embedded in the browser), unless the client has 1.6.0_10 or above, which then enables embedding Webstart based applets in a browser window.
As an alternative to that - you might also 'roll your own' variant using URLConnection (or whatever) and wrapping the InputStream in a ProgressMonitorInputStream. But I cannot see that being made workable, short of a digitally signed (and trusted) applet, which seems like overkill for a simple 'quick on-screen, then progress monitor while rest of resources download' type scenario.
Maybe you are looking for
-
How can I print to HP Photosmart 8750 Professional printer?
Hello to all. I have a G3 400 mhz. Blue and White, with Sonnet upgrade to G4 1 gig. Print jobs stopped on HP Photosmart 8750 Professional printer, possibly after upgrading to OS 10.4.10 (printer connected via USB). After reading discussions on this f
-
How to use ABAP stack of one with Java stack of another PI Server
Hi Friends, We need to use the Java Stack of one server with the Abap stack of another PI server, will that be possible ? and if yes what are the things need to be taken care of. please suggest on the same. Regards, Nitin
-
Open a pdf in a portfolio with an other programm.
Hi. I created a pdf-portfolio with Acrobat 9 with some pdf files. I use a tablet-pc and i want to open the single pdf's with an annotation-programm and not directly with Acrobat. At all file-types excluding pdf i can choose the preferred application.
-
My Firefox will not search for websites
My Firefox will not search for websites etc. I put in a parameter and it will not do anything. When I use anything else (such as Yahoo! search) it works fine. I type in a word/website/name etc. into the search box on Firefox and nothing happens. I ha
-
HP 1315 ERROR AS I ATTEMPT TO SCAN
The last time I employed my 1315 to scan, it was a couple of months ago. It worked fine. Today I´ve tried to scan an image and called WIA support inside Adobe Photoshop CS6 Extended. As I click to scan the following error message pops up : THE