You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Nellya Udovichenko (JIRA)" <ji...@apache.org> on 2006/08/22 15:42:16 UTC
[jira] Updated: (HARMONY-1259) NoClassDefFoundError while working
with MX4J loggers
[ http://issues.apache.org/jira/browse/HARMONY-1259?page=all ]
Nellya Udovichenko updated HARMONY-1259:
----------------------------------------
Attachment: MX4JLoggerTest.java
> NoClassDefFoundError while working with MX4J loggers
> ----------------------------------------------------
>
> Key: HARMONY-1259
> URL: http://issues.apache.org/jira/browse/HARMONY-1259
> Project: Harmony
> Issue Type: Bug
> Components: App-Oriented Bug Reports
> Reporter: Nellya Udovichenko
> Priority: Minor
> Attachments: MX4JLoggerTest.java
>
>
> MX4J has the logging system that allows redirecting the log calls to Commons Logging or Log4J systems and mx4j.jar file is included to the bootclasspath.
> However, there are no jar files of Commons Logging (commons-logging.jar) and Log4J (log4j.jar) projects in Harmony bootclasspath.
> Therefore, NoClassDefFoundError occurs while using MX4J logging system. This problem appears during Geronimo launching with Harmony.
> Below is the localized test case for easy bug reproducing:
> -----------------------------------------------------------------------------------------------------------------------------------------------------
> import java.lang.reflect.Method;
> import java.util.ArrayList;
> import javax.management.MBeanServer;
> import javax.management.MBeanServerFactory;
> public class MX4JLoggerTest {
> public static void main(String[] args) {
> try {
> Class cl = Class.forName("mx4j.log.Log");
> Class clParam = Class.forName("mx4j.log.Logger");
> Method method = cl.getDeclaredMethod("redirectTo", new Class[] {clParam});
> clParam = Class.forName("mx4j.log.CommonsLogger");
> method.invoke(null, new Object[] {clParam.newInstance()});
> } catch (ClassNotFoundException e) {
> System.out.println("MX4J classes aren't found in JDK");
> } catch (Exception e) {
> System.out.println("Exception: it can't force MX4J to use commons.logging classes");
> }
> try {
> ArrayList servers = MBeanServerFactory.findMBeanServer("test");
> System.out.println("PASSED");
> } catch (NoClassDefFoundError e) {
> System.out.println("FAILED with exception:");
> e.printStackTrace();
> } catch (Exception e) {
> System.out.println("PASSED with exception");
> }
> }
> }
> -------------------------------------------------------------------------------------------------------------------------------------------------------
> Test output.
> Harmony with commons-logging.jar added to classpath (not bootclasspath):
> C:\>java -cp C:\commons-logger.jar; MX4JLoggerTest
> FAILED with exception:
> java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
> at mx4j.log.Log.createLogger(Log.java:211)
> at mx4j.log.Log.getLogger(Log.java:180)
> at javax.management.MBeanServerFactory.getLogger(MBeanServerFactory.java:34)
> at javax.management.MBeanServerFactory.findMBeanServer(MBeanServerFactory.java:105)
> at MX4JLoggerTest.main(MX4JloggerTest.java:24)
> Harmony with commons-logging.jar added to bootclasspath:
> C:\>java MX4JLoggerTest
> PASSED with exception
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira