Hi Richard & Larry,
Your guy are great. I put different try block and found my
SqlMapConfig.xml missing close tag </transactionManager>.
and it works fine in jDeveloper9. But when I deploy into Tomcat, I still
got same error:
There are many kinds of log file under Tomcat/log folder.
I even can not see any debug message I put in the Static section. Why?
I check the log.jar, here are what we have now:
1)C:\Tomcat 5.0.28\common\lib\commons-logging-1.1.jar
C:\Tomcat 5.0.28\common\lib\log4j-1.2.14.jar
C:\Tomcat 5.0.28\common\classes\log4j.properties:
log4j.rootLogger=DEBUG, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat2.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
2)
C:\Tomcat
5.0.28\webapps\DisclosureSearch\WEB-INF\libcommons-logging-1.1.jar
C:\Tomcat 5.0.28\webapps\DisclosureSearch\WEB-INF\lib\log4j-1.2.14.jar
C:\Tomcat
5.0.28\webapps\DisclosureSearch\WEB-INF\classes\log4j.properties:
log4j.rootLogger=DEBUG, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/disclosure.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
error message is in localhost_log.2007-04-13.txt:
2007-04-13 15:31:25 StandardWrapperValve[action]: Servlet.service() for
servlet action threw exception
java.lang.NoClassDefFoundError: aaa/bbb/ccc/BaseIbatisDAO
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at
gov.fec.disclosure.DisclosureSearchSubmitAction.class$(DisclosureSearchSubmitAction.java:34)
at
gov.fec.disclosure.DisclosureSearchSubmitAction.<clinit>(DisclosureSearchSubmitAction.java:35)
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
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:145)
at
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:282)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:220)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Could you explain me how those log systems work? Do they conflic each
other?
Have a good weekend!
Jun Li
"Larry Meadors" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
04/13/2007 01:03 PM
Please respond to
[EMAIL PROTECTED]
To
[EMAIL PROTECTED]
cc
Subject
Re: java.lang.NoClassDefFoundError error again, need help!
I'd guess that the BaseIbatisDAO is failing to initialize properly,
then causing the exception you are seeing - if the initialization
fails, the class does not load, so later classes that rely on it can't
find it.
I'd look there for issues - maybe step through it with a debugger.
Larry
On 4/13/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> Sorry, I checked again.
> BaseIbatisDAO was under C:\Tomcat
5.0.28\webapps\DisclosureSearch\WEB-INF\classes\aaa\bbb\ccc\BaseIbatisDAO.class
>
>
> Thanks.
>
>
> Jun Li
>
>
>
>
>
> "Yee, Richard K CTR DMDC" <[EMAIL PROTECTED]>
>
> 04/13/2007 12:49 PM
>
>
> Please respond to
> [EMAIL PROTECTED]
>
>
> To "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
>
> cc
>
>
> Subject RE: java.lang.NoClassDefFoundError error again, need help!
>
>
>
>
>
>
>
>
> The BaseIbatisDAO class is not in ibatis-2.3.0.677.jar. BaseIbatisDAO is
the
> class you wrote.
>
> -Richard
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Friday, April 13, 2007 9:15 AM
> To: [EMAIL PROTECTED]
> Cc: '[EMAIL PROTECTED]'
> Subject: RE: java.lang.NoClassDefFoundError error again, need help!
>
>
> Thanks,
>
> I check, It was there, under C:\Tomcat
> 5.0.28\webapps\DisclosureSearch\WEB-INF\lib\ibatis-2.3.0.677.jar.
>
> I import ibatis-2.3.0.677.jar. into jDeveloper 9 first and then deploy
to
> Tomcat.
>
> Jun Li
> Information Technology Division
> Federal Election Commission
> Washington, DC 20463
> 202.694.1279
>
>
>
>
> "Yee, Richard K CTR DMDC" <[EMAIL PROTECTED]>
>
> 04/13/2007 12:11 PM
> Please respond to
> [EMAIL PROTECTED]
>
> To
> "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> cc
Subject
> RE: java.lang.NoClassDefFoundError error again, need help!
>
>
>
>
>
>
> Jun,
> The problem is that Tomcat can't find your BaseIbatisDAO class. Is the
> package in your WEB-INF/classes directory?
>
> -Richard
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Friday, April 13, 2007 9:01 AM
> To: [EMAIL PROTECTED]
> Subject: java.lang.NoClassDefFoundError error again, need help!
>
>
> I am trying to use iBATIS in jDeveloper 9 and Tomcat 5.0.28.
>
> I keep getting error: java.lang.NoClassDefFoundError,
>
> under \WEB-INF\lib\
> there are : ibatis-2.3.0.677.jar,
> log4j-1.2.14.jar;
> commons-logging-1.1.jar... and other struts jar.
> I searched the online, I guess the problem is in my static init
section. I
> copied that from online sample code.
>
> see below is error log and BaseIbatisDAO:
> ---------------------------------2007-04-13 11:51:42
> StandardWrapperValve[action]: Servlet.service() for servlet action
threw
> exception
> java.lang.NoClassDefFoundError: aaa/bbb/ccc/BaseIbatisDAO
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
> at
>
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo
> ader.java:1634)
> at
>
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.jav
> a:860)
> at
>
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
> a:1307)
> at
>
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
> a:1189)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:141)
> at
>
gov.fec.disclosure.DisclosureSearchSubmitAction.class$(DisclosureSearchSubmi
> tAction.java:34)
> at
>
gov.fec.disclosure.DisclosureSearchSubmitAction.<clinit>(DisclosureSearchSub
> mitAction.java:35)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
>
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcces
> sorImpl.java:39)
> at
>
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstruc
> torAccessorImpl.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
>
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:14
> 5)
> at
>
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcess
> or.java:282)
> at
>
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:220)
>
> at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
> at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:237)
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:157)
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:214)
> at
>
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
> t.java:104)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
> Valve.java:198)
> at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:152)
> at
>
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
> t.java:104)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
> )
> at
>
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
> t.java:104)
> at
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118
> )
> at
>
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
> t.java:102)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :109)
> at
>
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
> t.java:104)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
> at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
> at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
>
> at
>
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
>
> at
> org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
> at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
> a:683)
> at java.lang.Thread.run(Thread.java:534)
> ---------------------------------------
>
> Here is my BaseIbatisDAO :
>
> public class BaseIbatisDAO {
> private static BaseIbatisDAO instance = new BaseIbatisDAO();
> private static Logger log =
> Logger.getLogger(BaseIbatisDAO.class.getName());
> protected static SqlMapClient sqlMap;
> static
> {
> try
> {
> log.debug("Attempting to initialize SqlMap");
> Reader reader =
> Resources.getResourceAsReader("aaa/bbb/ccc/SqlMapConfig.xml");
> sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
> reader.close();
> } catch (IOException e) {
> // Fail fast.
> throw new RuntimeException("Something bad happened while building
the
> SqlMapClient instance." + e, e);
> }
> }
> -------------------------------------
> SqlMapConfig.xml:
>
> <sqlMapConfig>
>
> <!-- Configure a built-in transaction manager. If you're using an app
server, you probably want to use its transaction manager and a
managed datasource -->
> <transactionManager type="JDBC" commitRequired="false">
>
> <!--DataSource provided by the container -->
> <dataSource type="JNDI">
> <property name="DataSource"
> value="java:comp/env/jdbc/DisclosureCoreDS" />
> </dataSource>
>
> </sqlMapConfig>
> ------------------------------
>
>
>
> Thanks :-)
>
> Jun Li
>
>
>
>
>