Is there any issue regarding the use of Tomcat 4.0 and struts when dealing
with the "digester parsing" of the struts-config.xml ?
This is what´s been written to log file in tomcat 4.0
2001-10-01 11:28:58 StandardContext[/extranet]: Servlet /extranet threw
load() exception
javax.servlet.ServletException: Servlet.init() for servlet action threw
exception
at org.apache.catalina.core.StandardWrapper.load(Unknown Source)
at org.apache.catalina.core.StandardContext.loadOnStartup(Unknown Source)
at org.apache.catalina.core.StandardContext.start(Unknown Source)
at org.apache.catalina.core.ContainerBase.addChild(Unknown Source)
at org.apache.catalina.core.StandardHost.addChild(Unknown Source)
at org.apache.catalina.core.StandardHost.install(Unknown Source)
at org.apache.catalina.startup.HostConfig.deployApps(Unknown Source)
at org.apache.catalina.startup.HostConfig.start(Unknown Source)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(Unknown Source)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Unknown
Source)
at org.apache.catalina.core.ContainerBase.start(Unknown Source)
at org.apache.catalina.core.ContainerBase.start(Unknown Source)
at org.apache.catalina.core.StandardEngine.start(Unknown Source)
at org.apache.catalina.core.StandardService.start(Unknown Source)
at org.apache.catalina.core.StandardServer.start(Unknown Source)
at org.apache.catalina.startup.Catalina.start(Unknown Source)
at org.apache.catalina.startup.Catalina.execute(Unknown Source)
at org.apache.catalina.startup.Catalina.process(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:42
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:28)
at java.lang.reflect.Method.invoke(Method.java:313)
at org.apache.catalina.startup.Bootstrap.main(Unknown Source)
----- Root Cause -----
java.lang.NullPointerException
at org.apache.commons.digester.Digester.parse(Digester.java:859)
at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1273)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:460)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at org.apache.catalina.core.StandardWrapper.load(Unknown Source)
at org.apache.catalina.core.StandardContext.loadOnStartup(Unknown Source)
at org.apache.catalina.core.StandardContext.start(Unknown Source)
at org.apache.catalina.core.ContainerBase.addChild(Unknown Source)
at org.apache.catalina.core.StandardHost.addChild(Unknown Source)
at org.apache.catalina.core.StandardHost.install(Unknown Source)
at org.apache.catalina.startup.HostConfig.deployApps(Unknown Source)
at org.apache.catalina.startup.HostConfig.start(Unknown Source)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(Unknown Source)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Unknown
Source)
at org.apache.catalina.core.ContainerBase.start(Unknown Source)
at org.apache.catalina.core.ContainerBase.start(Unknown Source)
at org.apache.catalina.core.StandardEngine.start(Unknown Source)
at org.apache.catalina.core.StandardService.start(Unknown Source)
at org.apache.catalina.core.StandardServer.start(Unknown Source)
at org.apache.catalina.startup.Catalina.start(Unknown Source)
at org.apache.catalina.startup.Catalina.execute(Unknown Source)
at org.apache.catalina.startup.Catalina.process(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:42
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:28)
at java.lang.reflect.Method.invoke(Method.java:313)
at org.apache.catalina.startup.Bootstrap.main(Unknown Source)
This is the struts-config.xml ( with some changes to not show password ,
etc.)
----struts-config.xml----------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
<data-sources>
<data-source>
<set-property property="autoCommit"
value="false"/>
<set-property property="description"
value="Example Data Source Configuration"/>
<set-property property="driverClass"
value="org.gjt.mm.mysql.Driver"/>
<set-property property="maxCount"
value="4"/>
<set-property property="minCount"
value="2"/>
<set-property property="password"
value="xyz"/>
<set-property property="url"
value="jdbc:mysql://mysqlhost.mysite.com/mydatabase"/>
<set-property property="user"
value="xyz"/>
</data-source>
</data-sources>
<!-- ========== Form Bean Definitions
=================================== -->
<form-beans>
<form-bean name="lform"
type="logonform"/>
</form-beans>
<!-- ========== Global Forward Definitions
============================== -->
<global-forwards>
<forward
name="welcome"
path="/do/showlogonform"/>
</global-forwards>
<!-- ========== Action Mapping Definitions
============================== -->
<action-mappings>
<!-- lesson1 action -->
<action
path="/logon"
type="logonaction"
name="lform"
input="/WEB-INF/Pages/logonform.jsp">
<forward name="home" path="/WEB-INF/Pages/home.jsp"/>
<forward name="logon"
path="/WEB-INF/Pages/logonform.jsp"/>
</action>
<action
path="/logoff"
type="logoffaction">
<forward name="login" path="/WEB-INF/Pages/logonform.jsp"/>
</action>
<action
path="/showlogonform"
forward="/WEB-INF/Pages/logonform.jsp">
</action>
<!-- The standard administrative actions available with Struts -->
<!-- These would be either omitted or protected by security -->
<!-- in a real application deployment -->
<action path="/admin/addFormBean"
type="org.apache.struts.actions.AddFormBeanAction"/>
<action path="/admin/addForward"
type="org.apache.struts.actions.AddForwardAction"/>
<action path="/admin/addMapping"
type="org.apache.struts.actions.AddMappingAction"/>
<action path="/admin/reload"
type="org.apache.struts.actions.ReloadAction"/>
<action path="/admin/removeFormBean"
type="org.apache.struts.actions.RemoveFormBeanAction"/>
<action path="/admin/removeForward"
type="org.apache.struts.actions.RemoveForwardAction"/>
<action path="/admin/removeMapping"
type="org.apache.struts.actions.RemoveMappingAction"/>
</action-mappings>
</struts-config>
--- end of struts-config.xml ----
This app was running well in tomcat 3.3 b2
jakarta-struts and jakarta-commons jar files are from September 19th.
XML SAX parser is Xerces 1.4.1 whose jar file is in
$TOMCAT/webapps/myapp/lib
O.S. Windows Millenium
Java version is 1.4 beta2
Any suggestions ?
|