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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java Web Start ищет библиотеки в другом каталоге 
:(
    Опции темы
Temdegon
Дата 4.8.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

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



Есть вебсервер - обычный Apache HTTP. Есть простейшее десктоп-приложение, сгенеренное нетбинсом. Там же в нетбинсе включен вебстарт:
user posted image
Собранный проект в аттачменте.
Вот сгенеренный JNLP:
Код

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://dev/lumen1/uplinkos/temp/webstart" href="launch.jnlp" spec="1.0+">
    <information>
        <title>Basic Application Example</title>
        <vendor>Sun Microsystems Inc.</vendor>
        <homepage href="http://appframework.dev.java.net"/>
        <description>A simple java desktop application based on Swing Application Framework</description>
        <description kind="short">Basic Application Example</description>

    </information>
<update check="background"/>
<security>
<all-permissions/>
</security>
    <resources>
<j2se version="1.5+"/>
<jar href="ShitApplication.jar" main="true"/>


    <jar href="lib/appframework-1.0.3.jar"/>
<jar href="lib/swing-worker-1.1.jar"/>
</resources>
    <application-desc main-class="shitapplication.ShitApplication">

    </application-desc>
</jnlp>


Из JNLP ясно видно, что приложению нужны две либы: appframework-1.0.3.jar и swing-worker-1.1.jar, и искать их нужно в каталоге либ. Закидываю приложение на вебсервер по адресу http://dev/lumen1/uplinkos/temp/webstart, запускаю, приложение скачивается быстро, открывается консоль, а потом непонятная пауза в пол минуты. Если в это время глянуть в фаерволе открытые соединения, то видно, что процесс javaw открывает несколько сотен соединений. Запускаю HTTP-сниффер, что бы посмотреть, что конкретно javaw пытается найти, и вижу, что он упорно пытается найти файл http://dev/lumen1/uplinkos/temp/webstart/a...ework-1.0.3.jar, т.е. не в папке lib, а прямо в корне проекта, на что естественно получает ответ 404 not found. И таких попыток он делает несколько сотен, то же самое и с swing-worker-1.1.jar. Причем в логе видно, что он все-таки обращается и по правильному адресу, т.е. в папку lib, находит файл, и все равно продолжает долбить неправильный путь. В чем может быть проблема? Почему webstart ищет файлы по неправильному пути? зачем он вообще пытается скачать их несколько раз? Представьте, какой ужас творится, когда такой глюк вылазит в проекте, у которого не 2 либы, а 20! В моем случае javaw открывает 4000 соединений, приложение висит несколько минут, потом все-таки запускается, но выдает ошибку при любом обращении к сети, из-за превышения числа соединений. Я долго не мог врубиться, в чем проблема. Уже грешил на аксис и на toplink, насоздавал тут тем, а оказалось проблема в вебстарт.
Когда я использовал вебстарт на сервере GlassFish, такой проблемы небыло.  
Если продублировать либы в корне проекта, то все выглядит нормально, никаких левых соединений, все запускается быстро.  Но в логе видно, что либы были скачаны именно из корня (по обьему переданного трафика). Почему так происходит? Может я че-то не так указываю в JNLP? прикладываю собранный проект и два html-файла c логом http-запросов.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  dist.rar 160,54 Kb
PM MAIL   Вверх
COVD
Дата 4.8.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



В файле log2.html какие-то непонятные редиректы, т.е. сервер возвращает код 304. Попробуйте прямо из браузера, наберите адрес http://......./lib/..jar и убедитесь, что ресурс доступен по желаемому адресу.
PM MAIL   Вверх
Temdegon
Дата 4.8.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

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



Ответ сервера 304 значит что файл не изменился, как я понимаю. файл доступен

Это сообщение отредактировал(а) Temdegon - 4.8.2010, 16:56
PM MAIL   Вверх
COVD
Дата 4.8.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



да, я спутал с 302.  smile 

У нас все jar лежат в одной директории, которая обьявлена как codebase, и так конечно работает. 

Цитата

Когда я использовал вебстарт на сервере GlassFish, такой проблемы небыло.

Вообше непонятно, причем здесь личность вебсервера, который "отгружает" файлы по стандартному запросу. 

Это сообщение отредактировал(а) COVD - 4.8.2010, 17:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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