Я пишу базовую 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), на котором я также тестировал и получал ту же ошибку, т.е. работал в первый раз и во второй раз, получая ошибку ...