Hi,
I am running Tomcat 4.0 and am trying to run the Struts 1.0 sample application, struts-example.war.  I have moved this file into the Tomcat webapp directory, however when I try to access it I get the following error:
 

A Servlet Exception Has Occurred

Exception Report:

javax.servlet.ServletException: Cannot find message resources under key org.apache.struts.action.MESSAGE
	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:452)
	at org.apache.jsp._0002findex_jsp._jspService(_0002findex_jsp.java:453)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:458)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:215)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2314)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1000)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1093)
	at java.lang.Thread.run(Thread.java:484)

Root Cause:

javax.servlet.jsp.JspException: Cannot find message resources under key org.apache.struts.action.MESSAGE
	at org.apache.struts.util.RequestUtils.message(RequestUtils.java:568)
	at org.apache.struts.taglib.bean.MessageTag.doStartTag(MessageTag.java:239)
	at org.apache.jsp._0002findex_jsp._jspService(_0002findex_jsp.java:93)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:458)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:215)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2314)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1000)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1093)
	at java.lang.Thread.run(Thread.java:484)
I have tried running the other applications that come with Struts, and have also tried creating one of my own from scratch using a tutorial I found at the HP website.  They all seem to produce this error.  I did find this error message in the localhost_log_xxxx.txt file:
 

2001-08-29 08:57:01 StandardContext[/struts-example]: Servlet /struts-example threw load() exception
javax.servlet.ServletException: Error instantiating servlet class org.apache.struts.action.ActionServlet
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:818)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3240)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3350)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:415)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:643)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:324)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:389)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:232)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:278)
        at org.apache.catalina.core.StandardService.start(StandardService.java:368)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:473)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:738)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)
----- Root Cause -----
java.lang.NoClassDefFoundError: org/xml/sax/SAXException
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Class.java:237)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:809)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3240)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3350)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:415)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:643)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:324)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:389)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:232)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:278)
        at org.apache.catalina.core.StandardService.start(StandardService.java:368)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:473)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:738)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)
I believe that this may be what's causing the exception though I am not sure.  I haven't had to use SAX yet for anything else but it does seem to be in my classpath ($CLASSPATH=:/usr/jakarta-ant-1.3/lib:/usr/javamail-1.2/mail.jar:/usr/java/jdk1.3.1/lib/activation.jar:/usr/local/pgsql/share/java/postgresql.jar:/usr/jaxp-1.1/jaxp.jar:/usr/jaxp-1.1/xalan.jar)
 
Does anyone have any ideas how to fix this?  Is my $CLASSPATH setup incorrectly?  If so, how do I fix it?  I don't understand why Tomcat is working since I seem to remember it counting on these classes to run.  Thanks!
 
-Mark Bennett
Computer Science III
University of Alberta

Reply via email to