This week's book giveaway is in the Reactive Progamming forum. We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line! See this thread for details.
Howdy -- the only issue with WebStart on the server side is that you must be able to add a new MIME type. So, it should work on virtually any web server. On the server side, here are the main points: 1) You must be sure to add a new mime type to the server (if not there already): application/x-java-jnlp-file 2) You need the .jnlp file, of course Just a few tips along the way... Although I'm not certain of this, I *think* you need ALL the information tags in the jnlp file -- I don't think it works without them (I never did study the DTD for it, but that's how I got it to work anyway) And if you do NOT have a manifest within your ,jar that you're deploying, that says what your main-class is, that's OK as long as you include the main-class tag within your jnlp file. So overall, the main steps to deployment are: 1) Make your jar with your application 2) Make it as though you were making an "executable jar", by including a class with a main method, and a manifest indicating the main-class (alternatively, you can place the main-class definition inside the jnlp file, but in either case you MUST have a main class in the jar!) 3) Make sure your web server has the jnlp mime type, so that when it sends back the jnlp file, the browser knows what type it is and who to hand it off to (WebStart!) 4) Put your jnlp file and your application jar on your web server, as you would any regular html page, etc. 5) Then you can simply use the jnlp file as part of the URL http://127.0.0.1/~kathy/MyApp.jnlp And within that jnlp file, it says which jar to download and launch. Oh yeah, one other gotcha! (for me, anyway) You MUST include the codebase and href to the jnlp file inside the jnlp file. That seemed ridiculous to me, after all, once the jnlp file is pulled down, can't it remember or see from where it came? But it can't, so think of it this way when you're building the jnlp file -- pretend WebStart has absolutely no idea WHERE the jnlp file came from, so the jnlp file must always give the location that it just came from. So include the correct tag for BOTH codebase and href. I had trouble in the beginning because I didn't have those straight. Oh yeah, one last thing, Macintosh OSX has Java WebStart built in All I had to do was flip the switch to start Apache and I was serving my *own* WebStart files. But I have also been able to deploy WebStart from my hosting provider. As long as your hosting provider allows you to add a new MIME type (which I imagine virtually all of them do, since it doesn't affect the server at all) then you're good to go. cheers, Kathy Author of the new "Sun Certified Programmer and Developer for Java 2 Study Guide" (world's WORST Java book title, I didn't get to pick it And coming soon... "Head First Java" from O'Reilly
posted 16 years ago
This was really a good start i learnt a lot. Thanx a lot.. Now i struck at this error Error 404 i don't know how to set context to my drectory. when i type hhtp://localhost:8080/test it give me 404 error. help please.
Cowgirl and Author
posted 16 years ago
Howdy -- your 404 / context problem should probably be directed to the Servlets forum. I know only Tomcat web app configuration (and I don't even know *that* very well), but I'm sure there are a pile of experts in the Servlets forum that can probably help you track down the issue. Your web container may have more than one way to set the context (e.g. automatically loaded based on your app and a deployment descriptor being in a specific directory, OR manually written into a server configuration file, or a properties file...) so you might try to find out the other options (if there are any) for your web application deployment, and do it another way. cheers and good luck, Kathy