When bringing up a JSP website after updating the sources, going to the calendar page such as http://embedded.eecs.berkeley.edu/embeddedj/gsrcCalendar.do?calendarName=dopcenterCalendar&gsrc.location.group=dopcenter results in:
type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Parsing error processing resource path /WEB-INF/struts-config.xml
	at org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1279)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:461)
	at javax.servlet.GenericServlet.init(GenericServlet.java:213)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:880)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:613)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:164)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:545)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:410)
	at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:529)
	at java.lang.Thread.run(Thread.java:722)

root cause

org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.apache.commons.digester.Digester.parse(Digester.java:1206)
	at org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1274)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:461)
	at javax.servlet.GenericServlet.init(GenericServlet.java:213)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:880)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:613)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:164)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:545)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
	at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:410)
	at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:529)
	at java.lang.Thread.run(Thread.java:722)

The problem is that /home/www/java/embedded/WEB-INF/struts-config.xml was improperly created during installation.

The solution is to edit the file and get the contents of the form-beans and action-mappings from the bottom of the file and place them inside the sections at the top. See a working struts-config.xml for details. Then Restart Tomcat.