Question

While using a database server login module for authentication in jboss 6, I found it very useful managing principals and roles with the hsqldb database manager gui. This can be invoked via the JMX console. There are no problems at all when the application server resides on the same machine from which I'm using the JMX console.

Now I'm in the situation in which the application server runs on a different machine, say a linux box to which I connect via ssh, tail -f the logs for debugging and stuff, and I develop on a machine with a plain Vista installation.

Of course the JMX console is still accessible, but this time I can't manage to have the hsqldb database manager window showing up.

I installed the classic XMing X server without any special configuration (I'm not very well versed in X servers, so I'm practically using the default settings), and all that I found was the need to set and export the DISPLAY environment variable on the remote machine so that it points to the development machine, as in:

 set DISPLAY=192.168.0.5:0
 export DISPLAY

I also configured my ssh client (the simple putty) for X11 forwarding to the same ip address the remote DISPLAY variable points to.

Now when I try invoking the database manager from the JMX console, I get this exception trace:

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
Was it helpful?

Solution

Solved after some twiddling! The problem was in my Xming configuration parameters. There was a file named "X0.hosts" in which I added the ip address of the machine running the jboss instance.

I guess it could be the equivalent step of doing some "xhost + " on a linux box.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top