Domanda

Durante l'utilizzo di un modulo di accesso al server di database per l'autenticazione in JBoss 6, l'ho trovato molto utile di gestione dei principi e dei ruoli con la GUI HSQLDB Database Manager. Questo può essere invocato tramite la console JMX. Non ci sono problemi quando il server delle applicazioni risiede sulla stessa macchina da cui sto usando la console JMX.

Ora sono nella situazione in cui il server delle applicazioni viene eseguito su una macchina diversa, dire una scatola Linux a cui mi connetto tramite SSH, coda -f I registri per il debug e le cose, e mi sviluppio su una macchina con una semplice installazione di Vista.

Naturalmente la console JMX è ancora accessibile, ma questa volta non riesco a farla visualizzare la finestra HSQLDB Database Manager.

Ho installato il classico server Xming X senza alcuna configurazione speciale (non sono molto esperto nei server X, quindi sto praticamente usando le impostazioni predefinite) e tutto ciò che ho trovato è stata la necessità di impostare ed esportare la variabile dell'ambiente di visualizzazione sulla macchina remota in modo che indichi la macchina di sviluppo, come in:

 set DISPLAY=192.168.0.5:0
 export DISPLAY

Ho anche configurato il mio client SSH (il semplice stucco) per l'inoltro X11 allo stesso indirizzo IP a cui i punti della variabile di visualizzazione remoto.

Ora, quando provo a invocare il gestore del database dalla console JMX, ottengo questa traccia di eccezione:

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
È stato utile?

Soluzione

Risolto dopo un po 'di giro! Il problema era nei miei parametri di configurazione XMing. C'era un file chiamato "X0.hosts" in cui ho aggiunto l'indirizzo IP della macchina che esegue l'istanza JBoss.

Immagino che potrebbe essere il passaggio equivalente per fare un po 'di "Xhost +" su una scatola Linux.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top