Java Web Начните со Подписи - PullRequest
4 голосов
/ 21 июня 2011

All

У меня возникли проблемы с запуском java-приложения для веб-запуска, созданного Netbeans 7.

Я перенес свое существующее приложение java 6.9.1 в Netbeans 7 и попытался сделать его приложением для запуска через Интернет.

Для этого я установил опцию Включить веб-запуск в свойствах проекта.

Для опции кодовой базы у меня выбрано Развертывание веб-приложения. Параметр «Дескриптор приложения» выбран, который будет указывать элемент JNLP application-desc на основной класс моих приложений.

Для подписи я сгенерировал ключ и указал свойства Signing на это. У меня для Смешанного кода установлено значение Только доверенные, поскольку в моем приложении будут использоваться только подписанные файлы JAR.

Когда я компилирую, все ссылочные JAR-файлы и JAR-файл приложения подписываются, что выводится в консоли (для каждого) как:

Signing JAR: D:\MyCode\dist\lib\somejarfile.jar to D:\MyCode\dist\lib\somejarfile.jar as signFiles
Enter Passphrase for keystore: Enter key password for signFiles: 

ПРИМЕЧАНИЕ: signFiles - это псевдоним, который я использовал в свойствах подписи в Netbeans.

В моей папке dist созданы следующие файлы:

  • Lib
  • jnlpcomponent1.jnlp
  • launch.html
  • launch.jnlp
  • README.TXT
  • My App.jar

Я скопировал их в мою веб-папку, которая находится в папке tomcat, которая находится в C: \ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ webapps \ mywebapp.

Я использую следующий URL в IE и Firefox: http://mylaptop:8080/mywebapp/launch.html

Следующее исключение выдается, когда я нажимаю кнопку в файле launch.html для запуска файла JNLP:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: file:/C:/Users/panderson/AppData/Local/Microsoft/Windows/Temporary Internet Files/Content.IE5/B3UCQV8C/$$codebase/launch.jnlp
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(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.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.javaws.Launcher.updateFinalLaunchDesc(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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Мой файл launch.jnlp имеет следующее:

<jnlp codebase="$$codebase" href="launch.jnlp" spec="1.0+">
...
<resources>
    <j2se version="1.6+"/>
    <jar href="My App.jar" main="true"/>
...

Я не слишком уверен, почему он ищет в временных папках в Internet Explorer его ...

... Но я попытался поместить полный URL-адрес в jnlp href в файл launch.JNLP http://mylaptop:8080/mywebapp/launch.jnlp, затем выдается следующее исключение:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: file:/C:/Users/panderson/AppData/Local/Microsoft/Windows/Temporary Internet Files/Content.IE5/DR2O6URQ/$$codebase/My App.jar

Если я затем изменю jar href на http://mylaptop:8080/mywebapp/My App.jar, при нажатии файла в файле launch.html для запуска файла launch.JNLP выдается следующее исключение.

BadFieldException[ The field <jnlp>codebase has an invalid value: $$codebase,$$codebase]

Любая помощь или мысли?

Приветствия

Andez

Ответы [ 2 ]

3 голосов
/ 21 июня 2011
<jnlp codebase="$$codebase" href="launch.jnlp" spec="1.0+">

Эти значения $$ заполнителя обычно переводятся в нечто разумное с помощью сервлета или аналогичной функциональности.

2 голосов
/ 21 июня 2011

Это было предложено в качестве полезного инструмента в следующем вопросе .

Попробуйте использовать JaNeLA и посмотрите, обнаружит ли он какие-либо проблемы с вашим файлом JNLP.

Далее дважды проверьте и убедитесь, что URL-адрес codebase соответствует URL-адресу вашего сервера / приложения.

...