Monday, May 19, 2008

Axis and commons-logging problem

Had a weird bug. On our windows development machines our integration tests passed but on our Unix cruisecontrol machine the tests didn't pass. Both were run using maven command lines and fresh checkouts. Here's the stacktrace:

Caused by: org.apache.commons.discovery.DiscoveryException?: No implementation defined for org.apache.commons.logging.LogFactory?

at org.apache.commons.discovery.tools.DiscoverClass?.find(DiscoverClass?.java:404) at org.apache.commons.discovery.tools.DiscoverClass?.newInstance(DiscoverClass?.java:579) at org.apache.commons.discovery.tools.DiscoverSingleton?.find(DiscoverSingleton?.java:418) at org.apache.commons.discovery.tools.DiscoverSingleton?.find(DiscoverSingleton?.java:378) at org.apache.axis.components.logger.LogFactory?$1.run(LogFactory?.java:45) at java.security.AccessController?.doPrivileged(Native Method) at org.apache.axis.components.logger.LogFactory?.getLogFactory(LogFactory?.java:41) at org.apache.axis.components.logger.LogFactory?.(LogFactory?.java:33)


After searching on the web which didn't have much I finally figured out that in commons-logging 1.1.1 there is no longer org.apache.commons.logging.impl.Log4jFactory. I don't know why. But in the version 1.0.4 it exists. For some reason even though we had the Maven dependancy for Axis 1.3 the maven generated classpath had commons-logging 1.1.1. Don't ask me why. The strange thing is that I guess the surefire classloader or some classloader is different under windows and unix.

0 Comments:

Post a Comment

<< Home