#jboss #hsqldb #putty #xserver
#jboss #hsqldb #шпатлевка #xserver
Вопрос:
При использовании модуля входа на сервер базы данных для аутентификации в jboss 6 я нашел его очень полезным для управления участниками и ролями с помощью графического интерфейса hsqldb database manager. Это можно вызвать через консоль JMX. Никаких проблем вообще нет, когда сервер приложений находится на том же компьютере, с которого я использую консоль JMX.
Теперь я нахожусь в ситуации, когда сервер приложений работает на другой машине, скажем, на linux-сервере, к которому я подключаюсь через ssh, загружаю журналы для отладки и прочее, и я разрабатываю на машине с простой установкой Vista.
Конечно, консоль JMX по-прежнему доступна, но на этот раз мне не удается отобразить окно диспетчера базы данных hsqldb.
Я установил классический XMing X server без какой-либо специальной настройки (я не очень хорошо разбираюсь в X-серверах, поэтому практически использую настройки по умолчанию), и все, что я обнаружил, это необходимость установить и экспортировать переменную среды отображения на удаленной машине, чтобы она указывала на машину разработки, как в:
set DISPLAY=192.168.0.5:0
export DISPLAY
Я также настроил свой ssh-клиент (simple putty) для пересылки X11 на тот же IP-адрес, на который указывает переменная удаленного отображения.
Теперь, когда я пытаюсь вызвать диспетчер баз данных из консоли JMX, я получаю эту трассировку исключения:
ERROR [org.jboss.jdbc.HypersonicDatabase] (Thread-33) Failed to start database manager: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_17]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_17]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_17]
at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_17]
at org.jboss.jdbc.HypersonicDatabase$1.run(HypersonicDatabase.java:530) [:6.0.0.Final]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method) [:1.6.0_17]
at java.lang.Class.forName(Class.java:186) [:1.6.0_17]
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82) [:1.6.0_17]
at java.awt.Window.init(Window.java:385) [:1.6.0_17]
at java.awt.Window.<init>(Window.java:438) [:1.6.0_17]
at java.awt.Frame.<init>(Frame.java:419) [:1.6.0_17]
at javax.swing.JFrame.<init>(JFrame.java:218) [:1.6.0_17]
at org.hsqldb.util.DatabaseManagerSwing.main(Unknown Source) [:6.0.0.Final]
... 5 more
Ответ №1:
Решаемая после некоторого изменения! Проблема заключалась в моих параметрах конфигурации Xming. Был файл с именем «X0.hosts», в который я добавил IP-адрес компьютера, на котором запущен экземпляр jboss.
Я думаю, это может быть эквивалентным шагом выполнения некоторого «xhost » в linux box.