it-swarm.com.ru

Найдена неподписанная запись в ресурсе

у меня есть следующий файл JNLP:

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

Теперь, когда я пытаюсь запустить из Интернета, я получаю следующую ошибку:

Found unsigned entry in resource

Со следующим исключением

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)

Кто-нибудь знает, как решить эту проблему?

26
Marc Rasmussen

Это сработало для меня:

Зайдите в Панель управления/Java.

Затем нажмите кнопку «Настройки» и активируйте опцию «Сохранить временные файлы на моем компьютере».

Это странно, но это сработало!

22
martins.tuga

Проблема также может возникнуть со старыми версиями Java, если вы подписываетесь с более новыми версиями Java.

  • Подписать с 1.8u74 и старше работает со всеми версиями
  • Знак с 1.8u101 и новее работает с 1.7u80 и новее, но не со старыми версиями на клиенте.

Кажется несовместимым изменение в алгоритме знака.

5
Horcrux7

У меня была похожая проблема с моими приложениями.

Я развернул Java-приложение с javaws:

  • когда я запускаю приложение с использованием JRE 1.6, я получаю исключение
  • когда я запускаю приложение, используя JRE 1.7 и JRE 1.8, оно работает

Я проверил всю банку, MANIFEST.MF и т.д., И все было в порядке…. Наконец, я обнаружил, что использовал новую конечную точку TSA для подписи моих банок.

Из этого ресурса http://docs.Oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html я читаю Для создания метки времени jarsigner связывается с TSA с протоколом отметки времени (TSP), определенным в RFC 3161. В случае успеха маркер отметки времени, возвращенный TSA, сохраняется с подписью в файле блока подписи.

Кто-то может дать больше понимания этой проблемы? В частности, я не хочу, чтобы меня заставляли использовать конкретный TSA . Почему существуют различия между TSA? Спасибо

2
CARCARLO

У меня была такая же проблема при компиляции на моем linux maschine (с JDK 6 U45) . Но я получил эту ошибку только , когда я также попытался запустить подписанное приложение с Java 6 U45.

Когда я пытался запустить приложение с более новой Java-версией (например, Java 8), все время было нормально, без сообщения об ошибке.

Когда я использовал windows maschine для компиляции проекта (также с 6 Update 45), он странным образом работает и при запуске Java 6 U45.

Просто мои 2 цента .... Ура!

0
Ben

В моем случае апплет действительно имел неподписанную запись в папке META-INF. ) Одним из способов исправить это было бы переподписать его Но в Java 8 самоподписанные апплеты были demoted почти на том же уровне, что и неподписанные. И апплету не потребовались никакие дополнительные привилегии . Поэтому было достаточно просто отменить подпись его и добавить в список доверенных сайтов .

0
Vadzim