Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> webstart-maven-plugin error Unknown Source, При запуске через JNLP валится с ошибко 
:(
    Опции темы
ZVano
  Дата 16.12.2015, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Суть вопроса:
* понять почему возникает ошибка;
* получить информацию, которая поможет устранить ошибку;


Рабочая среда:
* Ubuntu 14.04 TLS (x64)
* Apache/2.4.7 (Ubuntu)
* Apache Maven 2.2.1 (rdebian-14)
* Java version: 1.8.0_66
* Java home: /usr/lib/jvm/java-8-oracle/jre
* NetBeans 8.1

Имеем простейшее приложение, предназначеное для запуска через JNLP.
Код

package zim.jnlp;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        System.out.println("Main/main");
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter your word: ");
        String s = scan.next();
        System.out.println("Last word: "+s);
    }
}


Проект создан в NetBeans и находится под управлением Maven (на основании pom.xml).
Сборка JNLP производится плагином webstart-maven-plugin.
После сборки получаем результат в каталоге '/jnlp/sample0/target/zim.jnlp.sample0-1.0-SNAPSHOT.zip'
Содержимое архива:
  • /lib/zim.jnlp.sample0-1.0-SNAPSHOT.jar
  • sample0.jnlp
Ложу содержимое архива в папку локального web-сервера под Apache2.
Иду по ссылке http://cts.local/java/DioWebServer/
Кликаю по sample0.jnlp
Запускается "IcedTea Java Web Start", которая ассоциирована с *.jnlp
Получаю ошибку 
Код

com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://cts.local/java/DioWebServer/sample0.jnlp
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.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.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)


Если запустить jar из консоли, то приложение отрабатывает нормально.

Вот фрагмент конфигурации "webstart-maven-plugin"
Код


            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>webstart-maven-plugin</artifactId>
                <version>1.0-beta-6</version>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>keytool-api-1.7</artifactId>
                        <version>1.5</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jnlp</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <libPath>lib</libPath>
                    <codebase>http://cts.local/java/DioWebServer</codebase>
                    <jnlp>
                        <outputFile>sample0.jnlp</outputFile>
                        <mainClass>zim.jnlp.Main</mainClass>
                    </jnlp>
                </configuration>
            </plugin>


Вот такой получили манифест:
Код

Manifest-Version: 1.0
Implementation-Title: zim.jnlp.sample0
Implementation-Version: 1.0-SNAPSHOT
Archiver-Version: Plexus Archiver
Built-By: ivan
Specification-Title: zim.jnlp.sample0
Implementation-Vendor-Id: zim
Version: 
Created-By: Apache Maven 3.0.5
Build-Jdk: 1.8.0_65
Specification-Version: 1.0-SNAPSHOT
Main-Class: zim.jnlp.Main


Вот такой получился "sample0.jnlp"
Код

<?xml version="1.0" encoding="UTF-8"?>
<jnlp
    spec="1.0+"
    codebase="http://cts.local/java/DioWebServer"
    href="sample0.jnlp">
  <information>
    <title>zim.jnlp.sample0</title>
  </information>
  <security>
     <all-permissions/>
  </security>
  <resources>
    <j2se version="1.5+"/>
    <jar href="lib/zim.jnlp.sample0-1.0-SNAPSHOT.jar" main="true"/>
  </resources>
  <application-desc main-class="zim.jnlp.Main"/>
</jnlp>


К топику прилагаю архив с микро-проектом.


Это сообщение отредактировал(а) ZVano - 16.12.2015, 18:59

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  jnlp.zip 20,78 Kb


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
ZVano
Дата 16.12.2015, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Прилаживаю скрин ошибки.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  jnlp_sample0_error.jpeg 165,35 Kb


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
LSD
Дата 16.12.2015, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



В JNLP прописано:
Код

<jar href="lib/zim.jnlp.sample0-1.0-SNAPSHOT.jar" main="true"/>

т.е. ожидается что jar файл будет лежать в папке lib, а по факту он лежит в той же папке.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ZVano
  Дата 17.12.2015, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



Цитата(LSD @  16.12.2015,  19:08 Найти цитируемый пост)
т.е. ожидается что jar файл будет лежать в папке lib, а по факту он лежит в той же папке.

Причина не в этом. Файл "zim.jnlp.sample0-1.0-SNAPSHOT.jar" скопирован в обе папки.
1. В проекте был просроченый самописный сертификат.
Сгенерил новый таким баником:
Код

set ksDir=e:\diosrc\javaKeytool
set ksFileName=zimTest.ks
set ksAlias=testalias
set ksFilePath=%ksDir%\%ksFileName%
set ksPass=testkeys
set kskPass=testkeys
set kskDname="cn=Mark Jones, ou=Java, o=Oracle, c=US" 
@rem Генерируем хранилище и ключ в нем
keytool -genkeypair -dname %kskDname% -alias %ksAlias% -keypass %kskPass% -keystore %ksFilePath% -storepass %ksPass%
@rem Выводим на экран список сертификатов в хранилище
keytool -list -keystore %ksFilePath% -storepass %ksPass% -keypass %kskPass%  
pause

2. Под Linux не работает ни под каким соусом.
3. Под Windows работает, если не использовать java.util.Scanner

Почему один и тот же *.jnlp + *.jar по разному работают в разных ОС?
URL, с которого загружаются файлы, одинаковый (http://cts.local/java/test/)
Эта непонятка выносит мне мозг т.к. я считал, что байткод Java будет одинаково работать на всех платформах, где есть JRE. Естественно, при условиии что код не использует платформеннозависимые вещи.

Переделал пример, чтобы он выводил диалоговое окно.
Под Widows работает, а под Linux валится с ошибкой.
Код

package zim.jnlp;
import java.awt.Component;
import javax.swing.JOptionPane;
public class Main {
    public static void main(String[] args) {
            System.out.println("Main/main");
            Component frame = null ;
            JOptionPane.showMessageDialog(frame, "Main/main/showMessageDialog");
    }
}


Ошибка такая:
Код

#### Java Web Start Error:
com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://cts.local/java/test/sample0.jnlp
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
    at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.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.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)


Версии java командой java -version
Код

   На  Windows:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)
   На Linux
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)


К сообщению прикладываю обновленный проект "jnlp_sample0_20151217_1127.zip", который работает в windows и не работает под Linux.

Это сообщение отредактировал(а) ZVano - 17.12.2015, 12:38

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  jnlp_sample0_20151217_1127.zip 21,26 Kb


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
ZVano
Дата 17.12.2015, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 11.12.2006
Где: Украина, Кривой Р ог

Репутация: нет
Всего: 4



На другом компьютере приложение работает (версия Ubuntu и Java идентичны) .
Получается, проблемма только в моей копии Linux и у Вас врядли повторится.
Буду грызть...

PS: На компьютере с Fedora проблемма повторилась и мы ее полечили.
Причина оказалась в том, JNLP-файл открывался не стандартным javaws, а какой то левой программой автозапуска (IcedTea Java Web Start).
На компе с проблемной Ubuntu та же программа.
Перепривязка на родную javaws из JRE 1.8 проблему в Ubuntu не решила.

Это сообщение отредактировал(а) ZVano - 17.12.2015, 18:44


--------------------
НЕ ФЛУДИМ. Пользуемся кнопками "+" или "-" для выражения своего отношения к теме или сообщению.
Гуглим "Как правильно задавать вопросы"
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0949 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.