简体   繁体   中英

java.lang.ClassNotFoundException: org.jboss.logging.Logger

I have a strange problem. I have a JMS client application & an MDB configured in JBoss jboss-5.1.0.GA . Earlier, I added the JAR by "Configure Build Path" → "Add External JARs" and everything was working fine.

Now, I moved all the JARs to a lib folder under my project and used "Configure Build Path" → "Add JARs".

Now, I get the following exception while executing the client program :(

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

I have jndi.properties in the classpath and the following JARs:

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

Can anyone help please?

您需要jboss-logging-3.1.0.GA ,它随 Hibernate 发行版一起提供,也可以单独下载。

It looks like they may be missing the lib/ folder in the classpath. Did you update the classpath to point to the lib folder? If you have a manifest file, make sure it references the lib folder for the jars. Print out your classpath when your program runs, then you can see if it points to those jars. The eclipse setting is only good in eclipse, so if you go outside of that, you have to watch the classpath.

The real problem was that the jbossall-client.jar contains references to other JARs. Hence, we need to add it from the JBOSS_HOME . That's why it didn't work when I copied to my lib directory.

It's the issue with the JBoss logger's compatibility with JDK upgrade from 1.7 on-wards. JDK 1.7 does not allow custom levels. Please use a library compatible with JDK 1.7 (Hit and Try). Maybe, lib doc can help in it.

Otherwise, change the problem JAR by yourself (not recommended).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM