27

i have the following JNLP file:

<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>

Now when i try to run in from the web i get the following error:

Found unsigned entry in resource

With the following exepction

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)

Does anyone know how to fix this problem?

Marc Rasmussen
  • 19,771
  • 79
  • 203
  • 364

5 Answers5

24

This worked for me:

Go the Control Panel/Java.

Then click on “Settings” button and activate the option “Keep temporary files on my computer.”

It’s weird, but it worked!

Giacomo1968
  • 25,759
  • 11
  • 71
  • 103
martins.tuga
  • 1,662
  • 1
  • 16
  • 20
  • Also it's worth to examine the MANIFEST.MF of the (unsigned) jar mentioned in the JarSigningException. This phenomenon seems to be related to package version information entries (e.g. Name: com.package.foo) present in the manifest of the unsigned jar. See also: http://web.archive.org/web/20140301230037/http://blog.atlashost.eu:80/post/found-unsigned-entry-in-resource-java-web-start.html – Attila Csipak Dec 05 '17 at 12:04
  • Actually, there's a fresher link to the above content: https://nowaker.net/post/found-unsigned-entry-in-resource-java-web-start.html (Looks like the author, Damian Nowak moved his blog to his own domain since 2014.) – Attila Csipak Dec 05 '17 at 17:13
10

The problem can also occur with older Java Versions if you sign with a newer Java versions.

  • Sign with 1.8u74 and older works with all versions
  • Sign with 1.8u101 and newer works with 1.7u80 and newer but not with older versions on the client.

There seems a incompatible change in the sign algorithm.

Horcrux7
  • 23,758
  • 21
  • 98
  • 156
  • I installed "Java SE Runtime Environment 8u74" (jre-8u74-windows-i586.exe) from https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html just as you directed. It solved the above problem. Many thanks, Horcrux7. – Erdogan CEVHER Oct 20 '21 at 21:38
2

I had a similar problem with my applications.

I' ve a java swing application deployed with javaws:

  • when I run the application using JRE 1.6 I get the exception
  • when I run the application using JRE 1.7 and JRE 1.8 it works

I checked all the jar, MANIFEST.MF etc. and all was fine. Finally I discovered that I've used a new TSA endpoint to sign my jars.

From this resource http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html I read To generate the time stamp, jarsigner communicates with the TSA with the Time-Stamp Protocol (TSP) defined in RFC 3161. When successful, the time stamp token returned by the TSA is stored with the signature in the signature block file.

Someone can give more insight about this problem? In particular I don't want to be forced to use a particular TSA. Why there are this differences between TSA? Thanks

CARCARLO
  • 1,001
  • 1
  • 8
  • 10
0

I my case the applet really had unsigned entry in META-INF folder. ) One way to fix that would be to re-sign it. But in java 8 self-signed applets were demoted to almost the same level as unsigned ones. And the applet didn't required any additional privileges. So it was sufficient to just un-sign it and add to trusted sites list.

Community
  • 1
  • 1
Vadzim
  • 24,954
  • 11
  • 143
  • 151
0

I had the same problem when compiling on my linux maschine (with JDK 6 U45). But I got this error only when I also tried to start the signed application with Java 6 U45.

When I try to start the application with a newer Java-Version (e.g Java 8) it was OK all the time, with no error message.

When I used a windows maschine to compile the project (also with 6 Update 45), it strangely works also when I use Java 6 U45 to start.

Just my 2 cents.... Cheers!

Ben
  • 3,378
  • 30
  • 46