2012-06-08 5 views
6

Ho uno strano problema.java.lang.ClassNotFoundException: org.jboss.logging.Logger

Ho un'applicazione client JMS & un MDB configurato in Jboss jboss-5.1.0.GA. In precedenza ho aggiunto il jar "Configure Build Path" -> "Aggiungi jar esterni" e tutto funzionava bene.

Ora, ho spostato tutti i vasi in una cartella di lib sotto il mio progetto e ho usato "Configura percorso di creazione" -> "Aggiungi giare".

Ora ottengo la seguente eccezione durante l'esecuzione del programma client. :(

`Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/logging/Logger 
at org.jnp.interfaces.NamingContext.<clinit>(NamingContext.java:160) 
at org.jnp.interfaces.NamingContextFactory.getInitialContext(NamingContextFactory.java:56) 
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) 
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) 
at javax.naming.InitialContext.init(Unknown Source) 
at javax.naming.InitialContext.<init>(Unknown Source) 
at com.dcat2.messaging.sendreceive.MessageReceiver_test.sendMessage(MessageReceiver_test.java:68) 
at com.dcat2.messaging.sendreceive.MessageReceiver_test.main(MessageReceiver_test.java:57) 
`Caused by: java.lang.ClassNotFoundException: org.jboss.logging.Logger 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 8 more` 

devo jndi.properties nel classpath e le seguenti vasetti.

jbossall-client.jar 
commons-logging.jar 
concurrent.jar 
javax.ejb.jar 
jms.jar 
jnp-client-4.2.2.GA.jar 
log4j-1.2.16.jar 
sqljdbc4.jar 

Chiunque può aiutare per favore ....?

+0

Come si sta eseguendo il programma client? –

+0

puoi mostrare le importazioni? Sembra che tu stia cercando di usare il logger jboss ma hai log4j sul percorso della classe. Potrebbe essere necessario importare org.apache.log4j – peshkira

+0

@peshkira .... Ho utilizzato import org.apache.log4j – user1407668

risposta

0

Sembra che forse hanno mangiato manca il lib/folder nel classpath Hai aggiornato il classpath in modo che punti alla cartella lib? Se hai un file manifest assicurati che faccia riferimento alla cartella lib per i jar. Stampa il tuo classpath quando il tuo programma è in esecuzione, allora puoi vedere se punta a quei barattoli. L'impostazione dell'eclisse è valida solo in eclissi, quindi se vai fuori da quello devi guardare il classpath.

+0

Ciao a tutti, Quando Ho aggiunto jbossall-client.jar dal percorso di installazione di tje jboss (../jboss-5.1.0.GA \ client) e non dalla cartella lib, ha funzionato. Quindi, non posso aggiungere questo jar alla cartella lib e includere nel mio buildpath? Qualche idea? – user1407668

+0

Inoltre, ho provato ad aggiungere quanto segue nel file manifest e provato. Ma ho lo stesso problema Class-Path: ../lib/jbossall-client.jar – user1407668

+0

Questo funziona solo se il file jbossall-client.jar è nel tuo jar. Il tuo barattolo ha una cartella di lib in esso? – Logan

0

Il vero problema era jbossall-client.jar contiene riferimenti ad altri vasi. Quindi dobbiamo aggiungerlo dal JBOSS_HOME. Ecco perché non ha funzionato quando ho copiato nella mia directory lib.

Grazie

2

è necessario jboss-logging-3.1.0.GA che viene fornito con la distribuzione di sospensione o può scaricato separatamente.

0

Il suo problema con la compatibilità logger JBOSS con upgrade JDK 1,7 su-reparti JDK1.7 non consente livelli personalizzati Si prega di utilizzare libreria compatibile con jdk1.7 (Hit e provare) forse doc lib può aiutare in esso.

Altrimenti cambiare il problema jar da solo (Non consigliato)