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

限于喜欢 提交于 2021-02-07 13:11:10

问题


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?


回答1:


You need jboss-logging-3.1.0.GA, which comes with the Hibernate distribution or can be downloaded separately.




回答2:


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.




回答3:


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.




回答4:


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).



来源:https://stackoverflow.com/questions/10948948/java-lang-classnotfoundexception-org-jboss-logging-logger

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!