Log4J “NoSuchMethodError” for org/apache/log4j/Logger.trace(Ljava/lang/Object;)V

My application uses log4J and when I deployed to our development server, I was getting the following exception:

CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method “onMessage” on bean “BeanId(LoggingEAR#LoggingEJB.jar#LoggingExceptionMDB, null)”. Exception data: java.lang.NoSuchMethodError: org/apache/log4j/Logger.trace(Ljava/lang/Object;)V

At first, I believed that this was caused by Log4J not being on the classpath in ear. Upon further inspection, it’s not a ClassNotFoundException but a NoSuchMethodError.

I looked at the classpath of my EJB and discovered that oracle had installed it’s own copy of Log4J onto the server classpath and this older version did not have the trace() method.

Author: dan

Comments

  1. hi,
    This clue cleared my confusion with the same error but i got with hibernate integrated with spring.

    Thanks.

  2. to be more clear,
    I got the exception with my logger jar file where lowest version which i used does not have trace().
    where in the higest version trace method is available.

    Thank you so much:-)

Leave a Reply

Your email address will not be published. Required fields are marked *