[ http://issues.apache.org/jira/browse/IBATIS-193?page=comments#action_12330498 ]
Sven Boden commented on IBATIS-193: ----------------------------------- Commons logging has a discovery process for determining which kind of logging to use. My hunch would be that you somehow you explicitly order Commons logging to use Log4J. Which explains your cases: 1) commons-logging.jar and log4j.jar in classpath... iBATIS uses commons logging and that internally uses log4j (forced by you, but would be the first default anyway) 2) log4j in classpath... iBATIS uses log4j, commons logging not involved 3) commons-logging.jar but no log4j.jar in classpath... iBATIS uses commons-logging.jar and if you're using only defaults commons logging will first try log4j, JDK1.4, JDK1.3 and SimpleLog... but in your case it fails when log4j.jar is not present. For 3) I assume you force commons logging to use log4j which isn't in the classpath, a lot of times this is forced via the commons logging properties file: commons-logging.properties Can you look for that file and report back the contents... Hint: if it mentions log4j you have found the culprit. If you want to debug yourself a bit, look at the class: com.ibatis.common.logging.LogFactory. This is where the logging in iBATIS is set up. Regards, Sven > Hidden jar dependicity for iBatis DBL 2.1.5 > ------------------------------------------- > > Key: IBATIS-193 > URL: http://issues.apache.org/jira/browse/IBATIS-193 > Project: iBatis for Java > Type: Bug > Components: SQL Maps > Versions: 2.1.5 > Environment: JDK 1.4.2 > Tomcat 4.1.x > Reporter: Dimiter Kapitanov > Priority: Minor > > This issue occurs only if you have commons-logging.jar in your classpath (but > NO log4j.jar !) : > java.lang.NoClassDefFoundError > at > com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.<init>(SqlMapConfigParser.java:53) > at > com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.<init>(SqlMapConfigParser.java:40) > at > com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:78) > at astarot.persist.Helper.initPersistance(Helper.java:94) > at dsk.jt.JTLogic.configureApplication(JTLogic.java:137) > at dsk.jt.JTLogic.<init>(JTLogic.java:43) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:274) > at java.lang.Class.newInstance0(Class.java:308) > at java.lang.Class.newInstance(Class.java:261) > at astarot.dominator.web.ActionServlet.init(ActionServlet.java:169) > at javax.servlet.GenericServlet.init(GenericServlet.java:256) > at > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) > at > org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) > at java.lang.Thread.run(Thread.java:534) > The row in astarot.persist.Helper where exception occurs is : > SqlMapClient mapper = SqlMapClientBuilder.buildSqlMapClient(reader, props); > This exception won't occur if you have both commons-logging.jar and log4j.jar > in the classpath, or even only log4j.jar. > All is OK in case you do not have both jars (but then logging is off). > I have looked in sources but was not able to find the reason. > Take this report (and the workaround) as time saver, if someone comes in same > situation. -- 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
