JOptionPane.showMessageDialog (null, ExNull) не отображается при развертывании на сервере Weblogic - PullRequest
0 голосов
/ 15 марта 2012

Я использую JOptionPane.showMessageDialog(null,ExNull) в моем модуле.

Exnull - это SQLException в перехвате в блоке перехвата.

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

Может кто-нибудь помочь здесь или предложить альтернативу для этого?

Я получаю ошибку:

java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
    at java.awt.Window.<init>(Window.java:431)
    at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1673)
    at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:846)
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:650)
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:621)
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:592)

1 Ответ

0 голосов
/ 22 апреля 2012

При разработке веб-приложения не следует использовать графический интерфейс для сообщения об ошибках. Очевидно, что WebLogic даже запрещает это, работая в режиме без головы (то есть элементы GUI не отображаются).

Обычным способом сообщения об ошибках в серверном приложении является его регистрация (например, запись трассировки стека в файл). Существует множество библиотек журналов (например, Apache commons-logging , log4j или SLF4J ), и простая даже в основном API Java, см. Документация по API пакета java.util.logging .

РЕДАКТИРОВАТЬ: Если вы действительно хотите показать GUI (я рекомендую против него), то можно изменить конфигурацию WebLogic: найдите -Djava.awt.headless=true и измените его на false.

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

  • Если вы хотите отладить что-то «быстрое и грязное», вы можете просто записать это в System.out.
  • Если вы хотите управлять или контролировать свое веб-приложение, вы можете создать специальную страницу администрирования в своем веб-приложении. Таким образом, вам не нужен отдельный графический интерфейс пользователя, поскольку вы можете получить доступ к этой странице администрирования через браузер, как и для остальной части вашего приложения.
  • Другой возможностью было бы создать отдельное приложение и позволить ему взаимодействовать с вашим веб-приложением (например, путем подключения к некоторому порту администрирования / мониторинга / отладки).

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

...