# Webstart Exception trotz signierten JARs



## MSJones (9. Aug 2011)

Hallo.
Hab mir eine kleine Anwendung gebastelt, die verschiedene Webseiten auslesen soll und die erlangten Ergebnisse in eine XML-datei schreiben soll.
Die XML-Datei enthält auch verschiedene Konfigurationen, wie z.B. die Seiten auf denen gesucht werden soll.

Auf die XML-Datei greif ich mit dem JDom-Paket zu.
Nun hab ich aber das Problem, daß sich das JDom-Paket scheinbar nicht signieren läßt, denn ich bekomm immer wieder folgende Exception:

```
com.sun.deploy.net.JARSigningException: Unsignierter Eintrag in Ressource: [url]http://scan.xxx.de/jdom.jar[/url] gefunden
	at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
	at com.sun.javaws.security.SigningInfo.check(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.launch(Unknown Source)
	at com.sun.javaws.Main.launchApp(Unknown Source)
	at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
	at com.sun.javaws.Main$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
```

Hab die JAR erst mal so probiert, wie ich sie heruntergeladen hab und dann nocheinmal selbst signiert und dann probiert.
jarsigner sagt mir, daß die JAR richtig signiert ist.

Wenn ich lokal starte, funktioniert alles super. Aber ich möcht das eben als WebStart-Anwendung haben.

Jemand ne Idee, worans liegen könnte?

Vielleicht hier mal noch meine JNLP-Datei:

```
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://scan.xxx.de">
    <information>
        <title>Scanner</title>
        <vendor>MSJones</vendor>
        <description kind="short">
                Ein Programm, welches Webseiten scannt und ergebnisse in XML schreibt
        </description>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="scan.jar" main="true" size="26263"/>
        <jar href="apache-mime4j-0.6.jar" size="362956" />
        <jar href="commons-codec-1.3.jar" size="50490" />
        <jar href="commons-email-1.2.jar" size="34762" />
        <jar href="commons-logging-1.1.1.jar" size="64458" />
        <jar href="dsn.jar" size="20350" />
        <jar href="httpclient-4.0.1.jar" size="311441" />
        <jar href="httpcore-4.0.1.jar" size="187044" />
        <jar href="httpmime-4.0.1.jar" size="28236" />
        <jar href="imap.jar" size="180785" />
        <jar href="jdom.jar" size="159508" />
        <jar href="mailapi.jar" size="265044" />
        <jar href="pop3.jar" size="38692" />
        <jar href="smtp.jar" size="47763" />

    </resources>
    <application-desc
         name="Scan Skript"
         main-class="Scan"
         width="300"
         height="300">
	<argument>XMLFile=c:/test.xml</argument>
     </application-desc>
     <update check="background"/>
     <security>
          <all-permissions/>
     </security> 
</jnlp>
```


----------



## freez (9. Aug 2011)

Ich hatte einen ähnlich gelagerten Fall, da war da jar bereits signiert und durch das selbst signieren wird diese offenbar nicht überschrieben, sondern ist zusätzlich vorhanden.

Ich habe mir so beholfen:
1. entpacken des jars
2. löschen der Signaturfiles

```
del META-INF\*.SF
del META-INF\*.RSF
del META-INF\*.RSA
```
3. packen des jars
4. selbst signieren

PS: Ich habe nicht geprüft, ob es rechtlich in Ordnung ist, wenn du dies mit deinem Jar machst.


----------



## MSJones (9. Aug 2011)

Jo, ok. Werd ich heut abend mal versuchen und dann Rückmeldung geben.
Danke schonmal für den Tipp.


----------



## MSJones (10. Aug 2011)

Super, hat geklappt.
Danke.
Aber was mich ein wenig verwundert:

Ich hab jetzt von den Dateien her nur meine eigene Signatur gelöscht.
Andere SF, RSF und RSA Dateien waren nicht da.

Und wenn das Paket schon signiert gewesen wäre, dann hätte es ja eigentlich funktionieren müssen, als ich das JAR verwendet hab, bevor ich meine Signatur drangehängt hab.

Kann höchstens sein, daß ANT da Mist gebaut hat, denn damit hab ich die Pakete signiert.
Muß ich heut abend mal testen, ob da ein Unterschied existiert, wenn ich das Paket von Hand oder per ANT-Skript signiere.

Jedenfalls funktioniert das Skript jetzt.
Vielen Dank.


----------

