WORDS BY Aleš Černivec
When I wanted to pack a simple java desktop application as a Web Start application I had problems with already signed jars - after Web Start dialog showed on the screen, I got
jar resources in jnlp file are not signed by the same certificate problem. There exist other ways to tackle the problem (for instance repacking the jar and signing with different certificate) but I think I chose the simplest, quickest and dirtiest. After I googled around I chose the solution described here. I my opinion the fastest solution in order to start testing quickly.
I had one jar (log4j) already signed with other certificate:
$ find . ... ./launch.jnlp ./jnlpcomponent1.jnlp ./lib/log4j-1.2.15.jar # already signed for eXist-db project. ...
Recipe: inspect jars with
$ jarsigner -certs -verbose -verify <path-to-jar>
In my case (
log4j-1.2.15.jar) I obtained
X.509, CN=eXist XML database, OU=Anonymous, O=exist-db.org, C=DE
I simply created new
exist.jnlp file (in the same directory as
launch.jnlp exists) with this content (taking into account what was returned by the jarsigner tool in the O key - standing for
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="file:/home/ales/NetBeansProjects/mravlja/dist/" href="exist.jnlp"> <information> <title>eXist</title> <vendor>exist-db.org</vendor> <offline-allowed/> </information> <offline-allowed/> <resources> <jar href="lib/log4j-1.2.15.jar"/> </resources> <component-desc/> </jnlp>
<extension name="eXist" href="exist.jnlp" />
launch.jnlp file. Do not try to F6 in the NetBeans IDE, since
launch.jnlp will be overridden. Use
launch.html with your browser and the problem is gone.