使用jboss 6.0从jmx控制台启动hsqldb数据库管理器

时间:2011-10-19 06:54:10

标签: jboss hsqldb putty xserver

在jboss 6中使用数据库服务器登录模块进行身份验证时,我发现使用hsqldb数据库管理器gui管理主体和角色非常有用。这可以通过JMX控制台调用。当应用程序服务器驻留在我使用JMX控制台的同一台机器上时,完全没有问题。

现在我处于应用服务器在不同机器上运行的情况,比如我通过ssh连接的linux盒子, tail -f 用于调试和填充的日志,以及我在一台普通Vista安装的机器上开发。

当然JMX控制台仍然可以访问,但这次我无法设法显示hsqldb数据库管理器窗口。

我安装了经典的XMing X服务器而没有任何特殊配置(我不太熟悉X服务器,所以我几乎使用默认设置),而我发现的所有内容都是需要设置和导出在远程计算机上显示环境变量,使其指向开发计算机,如:

 set DISPLAY=192.168.0.5:0
 export DISPLAY

我还将我的ssh客户端(简单putty)配置为X11转发到远程DISPLAY变量指向的相同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 个答案:

答案 0 :(得分:1)

经过一番捣乱解决了! 问题出在我的Xming配置参数中。 有一个名为“X0.hosts”的文件,其中我添加了运行jboss实例的机器的ip地址。

我想这可能是在linux盒子上做一些“xhost +”的等效步骤。