Медленный запуск приложения Java Web Start - PullRequest
4 голосов
/ 29 апреля 2010

Я использую IDE Netbeans для разработки приложения Java Web Start, которое запускается из Интернета, а затем использует EclipseLink JPA для доступа к удаленной базе данных MySQL. Я использую Swing Application Framework для управления жизненным циклом своего приложения.

Когда я запускаю приложение из Netbeans, загрузка моего приложения занимает около 7 секунд, но когда я использую IDE Netbeans для создания дистрибутива Web Start (с файлами JAR и JNLP), запуск занимает около 60 секунд , Кроме того, кажется, что окно прогресса «проверка приложения» / «загрузка приложения» запускается каждый раз, когда я запускаю приложение, даже если его копия уже была кэширована.

С точки зрения пользователей, один сначала видит мой экран-заставку в течение 1-2 секунд, затем окно прогресса "проверка приложения" / "загрузка приложения" в течение 5-20 секунд, а затем ничего в течение добрых 40 секунд до приложение запускается.

Код приложения написан так, что он должен показывать себя ДО того, как JPA начнет загружать модуль персистентности (поэтому я сомневаюсь, что это проблема), но я решил упомянуть об этом на всякий случай.


Обновление: метод createEntityManagerFactory Slow With Web Start

Изучив это далее, я обнаружил, что метод createEntityManagerFactory, который необходим EclipseLink для подключения к MySQL, занимает около 5 секунд, чтобы выполнить при запуске приложения из Netbeans или при удаленном входе в мой сервер для запуска JNLP там, но когда я запускаю приложение через Интернет, та же самая линия занимает 35 секунд (очень задерживает запуск). Интересно, что это время становится еще хуже, так как скорость моего интернет-соединения ухудшается. Ниже приведена копия файла JNLP, который я использую.

Кто-нибудь знает, что может быть причиной такой задержки?

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

MyApp My App Vendor Описание моего приложения MyApp

Ответы [ 2 ]

6 голосов
/ 29 июня 2010

Я не уверен, что вы уже решили это.Но я повторил вашу проблему и исправил ее.Все, что мне нужно было сделать, это переключиться с Eclipselink на Toplink.Так просто.Стартапы пошли от 1 до 2 минут до 5 секунд.Я даже проследил приложение и обнаружил то же зависание во время инициализации eclipselink.

Надеюсь, это поможет.

1 голос
/ 29 апреля 2010

Прежде всего, в панели управления Java включите ВСЕ ведение журнала. Это позволит вам точно увидеть, что делает Java WebStart (но многое из этого не имеет особого смысла, если у вас нет доступа к источнику WebStart).

Мой думаю, из вашего описания означает, что у вас есть один или несколько недоступных DNS-серверов в конфигурации вашей сети И вы хотите получить доступ к сетевому ресурсу, который недоступен.

...