We just recently upgraded one of our servers from JDK 1.3.15 to 1.4.2. After
doing so, we are no longer able to get the web application to work. I am
including the error and the web.xml. This worked fine with JDK 1.3.x.
Any suggestions?
Nov 3, 2005 5:27:05 PM org.apache.commons.digester.Digester endElement
SEVERE: End event threw exception
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
at org.apache.commons.digester.Rule.end(Rule.java:276)
at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1720)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at
org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:282)
at
org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:639)
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3587)
at
org.apache.catalina.core.NSJSPStandardContext.start(NSJSPStandardContext.java:58)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
at
org.apache.catalina.core.StandardService.start(StandardService.java:497)
at
com.tandem.servlet.catalina.core.NSJSPServer.start(NSJSPServer.java:2148)
at
com.tandem.servlet.catalina.core.NSJSPContainer.start(NSJSPContainer.java:525)
at
com.tandem.servlet.catalina.core.NSJSPContainer.execute(NSJSPContainer.java:412)
at
com.tandem.servlet.catalina.core.NSJSPContainer.process(NSJSPContainer.java:189)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.tandem.servlet.NSJSPBootstrap.main(NSJSPBootstrap.java:208)
Caused by: java.lang.IllegalArgumentException: addChild: Child name 'action'
is not unique
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:815)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at
org.apache.catalina.core.StandardContext.addChild(StandardContext.java:1346)
... 34 more
Our web.xml file looks like this:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>application.debug</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>application.config</param-name>
<param-value>/WEB-INF/config.properties</param-value>
<description>The config file used for holding specific configuration
attributes</description>
</context-param>
<context-param>
<param-name>local.server</param-name>
<param-value>SCPMS4</param-value>
</context-param>
<context-param>
<param-name>dir.documentation</param-name>
<param-value>/usr/tandem/web_applications/ctc/docs/</param-value>
<description>The location for the user support docs</description>
</context-param>
<context-param>
<param-name>PMon</param-name>
<param-value>$KSMS</param-value>
<description>Production Pathmon process name</description>
</context-param>
<context-param>
<param-name>SMon</param-name>
<param-value>$USMS</param-value>
<description>Simulation Pathmon process name</description>
</context-param>
<context-param>
<param-name>Alarm-SC</param-name>
<param-value>CTC-JVHP-SVR</param-value>
<description>Server class name for adding alarms</description>
</context-param>
<context-param>
<param-name>Inter-SC</param-name>
<param-value>CTC-INTER</param-value>
<description>Server class name for intermediate server</description>
</context-param>
<context-param>
<param-name>Sim-Inter-SC</param-name>
<param-value>CTC-CTIN-SVR</param-value>
<description>Server class name for simulation intermediate
server</description>
</context-param>
<context-param>
<param-name>Error-Header</param-name>
<param-value>[CTC_GUI]</param-value>
<description>Header to prepend to all recorded errors</description>
</context-param>
<context-param>
<param-name>documentation-init-file</param-name>
<param-value>/usr/tandem/web_applications/ctc/docs.properties</param-value>
<description>Initialization file location for documentation
elements</description>
</context-param>
<context-param>
<param-name>documentation-sleep-timer</param-name>
<param-value>1</param-value>
<description>The time in minutes to check for changes to the
init-file</description>
</context-param>
<context-param>
<param-name>MaxNumberOfFailedAttempts</param-name>
<param-value>3</param-value>
<description>Maximum Number of Failed Login Attempts before the user
account is LOCKED</description>
</context-param>
<context-param>
<param-name>date.default.pattern</param-name>
<param-value>MM/dd/yyyy HH:mm</param-value>
<description>Default formatting pattern for use with
TandemTagLibrary</description>
</context-param>
<context-param>
<param-name>date.default.timeZone</param-name>
<param-value>GMT</param-value>
<description>Default time zone to use for date formatting using
TandemTagLibrary</description>
</context-param>
<context-param>
<param-name>production.environment</param-name>
<param-value>n</param-value>
<description>Determines if this system is a production system.</description>
</context-param>
<filter>
<filter-name>CGIAttributeFilter</filter-name>
<filter-class>com.sprint.ctc.struts.CGIAttributeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CGIAttributeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.sprint.ctc.listeners.SessionManagerListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.sprint.ctc.struts.Controller</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>DownloadServlet</servlet-name>
<display-name>This is the display name of my J2EE component</display-name>
<description>This is the description of my J2EE component</description>
<servlet-class>com.sprint.ctc.DownloadServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>Log4JInitServlet</servlet-name>
<display-name>This is the display name of my J2EE component</display-name>
<description>This is the description of my J2EE component</description>
<servlet-class>com.sprint.ctc.Log4JInitServlet</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
<description>Location of the log4j.properties file</description>
</init-param>
<init-param>
<param-name>log4j-delay</param-name>
<param-value>10000</param-value>
<description>Number of milliseconds delay before checking for a change to
log4j.properties file</description>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>InputBatchPull</servlet-name>
<servlet-class>com.sprint.ctc.ajax.InputBatchPull</servlet-class>
</servlet>
<servlet>
<servlet-name>SimulationEnvironmentPull</servlet-name>
<servlet-class>com.sprint.ctc.ajax.SimulationEnvironmentPull</servlet-class>
</servlet>
<servlet>
<servlet-name>AdministrationServlet</servlet-name>
<servlet-class>com.sprint.ctc.ajax.AdministrationMessagePull</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminstrationMessagePull</servlet-name>
<description>Pull/Push Message from admin to users</description>
<servlet-class>com.sprint.ctc.ajax.AdministrationMessagePull</servlet-class>
</servlet>
<servlet>
<servlet-name>ScriptInputPull</servlet-name>
<description>Used by AJAX to pull list of Script Inputs (Files/Cllis) from
the database</description>
<servlet-class>com.sprint.ctc.ajax.ScriptInputPull</servlet-class>
</servlet>
<servlet>
<servlet-name>ScriptSetupPull</servlet-name>
<servlet-class>com.sprint.ctc.ajax.ScriptSetupPull</servlet-class>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DownloadServlet</servlet-name>
<url-pattern>/download</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Log4JInitServlet</servlet-name>
<url-pattern>/servlet/Log4JInitServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>InputBatchPull</servlet-name>
<url-pattern>/inputbatchpull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimulationEnvironmentPull</servlet-name>
<url-pattern>/simulationpull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AdministrationServlet</servlet-name>
<url-pattern>/AdministrationServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AdminstrationMessagePull</servlet-name>
<url-pattern>/adminmessagepull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ScriptInputPull</servlet-name>
<url-pattern>/scriptInputPull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ScriptSetupPull</servlet-name>
<url-pattern>/scriptSetupPull</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>/form/login.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/taglibs-datetime</taglib-uri>
<taglib-location>/WEB-INF/taglibs-datetime.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/amarda-logic</taglib-uri>
<taglib-location>/WEB-INF/amarda-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/CTCTagLib</taglib-uri>
<taglib-location>/WEB-INF/tlds/CTCTagLib.tld</taglib-location>
</taglib>
</web-app>