it-swarm.com.de

Vorzeichenloser Eintrag in Ressource gefunden

ich habe die folgende JNLP-Datei:

<jnlp spec="1.0+" codebase="http://****:****" href="tcm2012.jnlp">
  <information>
    <title>TCM 2012</title>
    <vendor>Drift og Performance, *** Servicecenter</vendor>
    <homepage href="http://******"/>
    <description/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <j2se version="1.6+"/>
    <jar href="tcm2012.jar"/>
  </resources>
  <application-desc main-class="com.****.kundeservice.TCMApplication"/>
</jnlp>

Nun, wenn ich versuche, aus dem Web zu laufen, erhalte ich die folgende Fehlermeldung:

Found unsigned entry in resource

Mit der folgenden Ausnahme

com.Sun.deploy.net.JARSigningException: Found unsigned entry in resource: http://*****:****/tcm2012.jar
at com.Sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
at com.Sun.javaws.security.SigningInfo.check(Unknown Source)
at com.Sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.Sun.javaws.security.JNLPSignedResourcesHelper.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.access$000(Unknown Source)
at com.Sun.javaws.Main$1.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)

Kann jemand dieses Problem beheben?

26
Marc Rasmussen

Das hat für mich funktioniert:

Gehen Sie in die Systemsteuerung/Java.

Klicken Sie dann auf die Schaltfläche "Einstellungen" und aktivieren Sie die Option "Temporäre Dateien auf meinem Computer behalten".

Es ist komisch, aber es hat funktioniert!

22
martins.tuga

Das Problem kann auch bei älteren Java-Versionen auftreten, wenn Sie mit einer neueren Java-Version signieren.

  • Sign mit 1.8u74 und älter funktioniert bei allen Versionen
  • Sign mit 1.8u101 und neuer funktioniert mit 1.7u80 und neuer, jedoch nicht mit älteren Versionen auf dem Client.

Es scheint eine inkompatible Änderung des Vorzeichenalgorithmus zu geben.

5
Horcrux7

Ich hatte ein ähnliches Problem mit meinen Bewerbungen.

Ich habe eine Java-Swing-Anwendung, die mit Javaws bereitgestellt wird:

  • wenn ich die Anwendung mit JRE 1.6 starte, erhalte ich die Ausnahme
  • wenn ich die Anwendung mit JRE 1.7 und JRE 1.8 laufe, funktioniert es

Ich habe das ganze Glas, MANIFEST.MF usw. überprüft und alles war in Ordnung. Schließlich entdeckte ich, dass ich einen neuen TSA-Endpunkt zum Signieren meiner Gläser verwendet habe.

Aus dieser Ressource http://docs.Oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html lese ich Um den Zeitstempel zu erzeugen, kommuniziert der jarsigner mit dem TSA mit dem in RFC 3161 definierten Time-Stamp-Protocol (TSP). Bei Erfolg wird das von der TSA zurückgegebene Zeitstempeltoken mit der Signatur in der Signaturblockdatei gespeichert.

Kann jemand mehr Einblick in dieses Problem geben? Insbesondere möchte ich nicht gezwungen sein, eine bestimmte TSA zu verwenden. Warum gibt es diese Unterschiede zwischen der TSA? Danke

2
CARCARLO

Ich hatte das gleiche Problem beim Kompilieren auf meiner linux-Maschine (mit JDK 6 U45) ..__ Aber ich habe diesen Fehler nur erhalten, als ich auch versuchte, start die signierte Anwendung mit Java 6 U45.

Wenn ich versuche, die Anwendung mit einer neueren Java-Version (z. B. Java 8) zu starten, war sie immer in Ordnung, ohne Fehlermeldung.

Wenn ich das Projekt mit einer windows-Maschine kompilierte (auch mit 6 Update 45), funktioniert es seltsam auch, wenn ich zum Starten Java 6 U45 verwende.

Nur meine 2 Cent .... Prost!

0
Ben

In meinem Fall hatte das Applet wirklich einen vorzeichenlosen Eintrag im META-INF-Ordner. ) Eine Möglichkeit, das Problem zu beheben, wäre das erneute Signieren . In Java 8 wurden jedoch selbstsignierte Applets heruntergestuft auf fast das gleiche Niveau wie nicht signierte Applets gebracht. Und das Applet erforderte keine zusätzlichen Privilegien. Es war also ausreichend, nur das Vorzeichen zu unterzeichnen it und zur Liste der vertrauenswürdigen Sites hinzuzufügen .

0
Vadzim