Как определить, когда / почему Java Web Start не запускается для ваших пользователей - PullRequest
0 голосов
/ 23 ноября 2010

Ситуация:

Крупная компания с несколькими внутренними приложениями Java, запущенными через Java Web Start из Java Web Application.Пользователи входят в веб-приложение Java и выбирают программу, которая запускается через Java WebStart.Приложение регистрирует базу данных, когда пользователь пытается запустить приложение.После запуска приложения оно помечает строку в базе данных как успешную.

Проблема:

В базе данных есть строки, в которых пользователь запустил программу, ноприложение никогда не обновляло базу данных, которую оно запустило.Есть только несколько причин, о которых я могу думать:

  • У пользователя не установлена ​​JVM или, возможно, правильная версия
  • Не удалось загрузить приложение из-за веб-проблема сервера / развертывания.(Например, не все файлы .jar, требуемые приложением, были развернуты на веб-сервере.
  • У приложения возникла проблема с подключением к базе данных или ошибка, из-за которой оно не могло выполнить запись в базу данных.

Цель / вопрос:

Я хотел бы определить количество причин. В любом случае можно определить, почему не удалось запустить приложение Java Web Start, так что яможно увидеть, как часто это происходит? Есть ли еще одна причина, которую я мог бы не рассматривать?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2010

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

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

Чтобы устранить третью причину, не подключайте сами приложения непосредственно к базе данных, а вместо этого только им сообщайте через HTTP веб-приложение, запустившее JNLP, - вы можете быть разумно уверены, что они имеют связь с этот сервер. Затем попросите это веб-приложение вставить соответствующие записи базы данных.

1 голос
/ 23 ноября 2010

Я бы хотел предложить вам решение для каждого случая отдельно.

* The user did not have JVM installed or possibly the correct version

Обычно пользователь запускает веб-приложение, нажимая ссылку в файле JNLP в браузере.Попробуйте проверить, что плагин Java установлен.Вы можете сделать это с помощью сценария Java.Таким образом, вы избежите пользователя, который не имеет Java-плагин для запуска приложения.Я знаю, что это не идеальное решение: - возможно, плагин не установлен, но рабочий стол Java может работать.это «ложноотрицательный» - пользователь может успешно запустить приложение в первый раз, но затем удалить JVM и попытаться запустить приложение снова.

* The application failed to load due to a web-server/deployment issue. (For example not all .jars required by the application were deployed to the web server.
* The application had a connection issue with the database or a bug that caused it to not write to the database.

Все остальные проблемы можно решить с помощью какого-либо загрузчика.

  1. Запустите приложение, используя bat файл / скрипт, который проверяет наличие java перед запуском самого приложения.Я знаю, что веб-запуск запускает само приложение, но вы можете создать специальный значок на рабочем столе, который запускает ваше приложение через скрипт.
  2. оберните ваши «большие» приложения, используя легкий загрузчик, который проверяет правильность пути к classpath и (возможно) подключению к БД, а затем запускает приложениеЗагрузчик может отправлять уведомления о сбоях пользователю и администратору
  3. какое-то сумасшедшее решение.Вернемся к сценарию.Сценарий может уведомить серверную часть о том, что приложение будет запущено.Сервер запускает задачу таймера, которая проверяет в БД состояние приложения.Если приложение не подключено к серверу, сервер может уведомить пользователя, отправив сообщение с помощью «net send» (если пользователь в Windows) или по почте, если пользователь находится на другой платформе.
...