2011-06-21 3 views
4

Все,Java Web Start с Подписана

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

Я мигрировал мои существующие Java 6.9.1 приложения к Netbeans 7 и попытался сделать это веб-приложение.

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

Для параметра codebase у меня выбрано развертывание веб-приложений. В качестве дескриптора приложения выбрана опция, которая укажет элемент приложения-дескриптора JNLP в основной класс приложений.

Для подписания я сгенерировал ключ и указал на это свойство Signing. У меня есть смешанный код, настроенный на Trusted Only, поскольку мое приложение будет использовать только подписанные 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"/> 
... 

Я не слишком уверен, почему он смотрит под временными папками в интернете взрывающихся Орер для него ...

... Но я пытался поставить полный 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

+0

@ Андрей - Надеюсь, это будет проблема JWS. Просто с netbeans - это иногда скрывает потенциальные проблемы от вас, которые поражают вас, когда вы запускаете вещи. :-( – Andez

ответ

3
<jnlp codebase="$$codebase" href="launch.jnlp" spec="1.0+"> 

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

+1

Эй, Эндрю, ты просто избил меня до Это связано с несколькими проблемами. Первое, что вы упомянули, это код. Я изменил это на URL, например, http: // mylaptop: 8080/mewebapp. Во-вторых, похоже, проблема с именем моего JAR-файл.Как он имеет место в имени файла, он обнаружил, что не удалось загрузить файл ресурсов. – Andez

+0

Пространства в HTML, как правило, должны быть заменены на. Я думаю, что это '% 20'. Но тогда я избегаю использовать кепки или пробелы в именах Jar. Вместо пробелов обычно достаточно '.' или' -' или '_'. –

2

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

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

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

+0

+1 Кровавая хорошая точка! JaNeLA подобрала бы всевозможные проблемы с этим JNLP, начиная с кода. –

+0

Спасибо за ссылку с Janela. Пригодится. – Andez

Смежные вопросы