java web start не запускается при втором запуске - PullRequest
2 голосов
/ 24 июня 2011

Я пишу базовую Java-программу для тестирования jnlp и экспортирую ее в jnlp-файл с помощью eclipse и подписал его с помощью jarsigner.

Файл jnlp выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://192.168.2.15/test" href="test.jnlp">
        <information>
            <title>test</title>
            <vendor>test</vendor>
            <homepage href="http://192.168.2.15/test" />
            <description>test</description>
        </information>
        <security>
            <all-permissions/>
        </security>
        <resources>
            <j2se version="1.6+" />
            <jar href="test.jar" />
        </resources>
        <application-desc main-class="Test.main">
        </application-desc>
    </jnlp>

когда я делаю тест с [javaws http://192.168.2.15/test/test.jnlp],, он работает как положено для первого запуска.

Когда я повторяю попытку второй раз, Java Web Start не может запустить программу и выдает следующую ошибку

java.io.IOException: Server returned HTTP response code: 500 for URL: [http://192.168.2.15/test/test.jar]
    at sun.reflect.GeneratedConstructorAccessor2.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.isUpdateAvailable(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.isUpdateAvailable(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
    at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: [http://192.168.2.15/test/test.jar]
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    ... 13 more

Когда я удаляю программу из кэша с помощью javaws -uninstall и пытаюсь запустить ее с помощью javaws [http://192.168.2.15/test/test.jnlp], это обычно работает при первом запуске, но когда я пытаюсь второй раз, я получаю ту же ошибку выше.

Моя тестовая платформа - Windows 7 Ultimate, установлена ​​последняя версия Java.

Я новичок в Java и не смог найти проблему. Не могли бы вы помочь мне?

Результат проверки моего файла JNLP с JaNeLA:

JaNeLA Report - версия 11.05.17

Отчет за http://192.168.2.15/sistem/toplanti/test.jnlp

  • Кодировка XML не известна, но объявлена ​​как utf-8
  • Codebase + href 'http://192.168.2.15/Sistem/Toplanti/test.jnlp' не равно фактическому местоположению' http://192.168.2.15/sistem/toplanti/test.jnlp'.
  • Оптимизируйте это приложение для автономного использования, добавив флаг.
  • Загрузки можно оптимизировать, указав размер ресурса для test.jar.
  • Загрузка ресурса в test.jar может быть оптимизирована путем удаления (по умолчанию) значения download = 'eager'.
  • Загрузка ресурса в test.jar может быть оптимизирована путем удаления (по умолчанию) значения main = 'false'.
  • Возможно, можно оптимизировать запуск приложения. указав download = 'lazy' для ресурса test.jar.
  • Ленивые загрузки могут работать не так, как ожидается для test.jar, если для загрузки не указана «часть».

Я все еще пытаюсь решить проблему, и когда я тестировал jnlp на ПК с ОС в качестве windows xp, я не получил никакой ошибки, всегда работает один и тот же jnlp (для первого запуска, второго запуска, .. .) Есть также еще один компьютер (Windows 7 Professional), на котором я также тестировал и получал ту же ошибку, т.е. работал в первый раз и во второй раз, получая ошибку ...

Ответы [ 3 ]

1 голос
/ 30 июня 2011

Я наконец-то решил свою проблему после нескольких тестов. Я обнаружил, что это связано с web.config, и для своего приложения я использую инструменты telerik, и в web.config есть строка для сжатия, такая что [add name="RadCompression" type="Telerik.Web.UI.RadCompression" preCondition="integratedMode" ]. Я решил свою проблему, комментируя (удаляя) эту строку.

:)

0 голосов
/ 26 июня 2011

Проверьте JNLP, используя JaNeLA .

0 голосов
/ 24 июня 2011

Похоже, что используемый вами веб-сервер возвращает ошибку 500 при попытке доступа к URL.

Если это так, то это не проблема Java WebStart, а вашего веб-сервера.Как вы это настроили?

...