Anyone else who has got Tomcat 4 integrated with Apache 2 with mod_webapp and are using Struts out there? Does this sound familiar at all? Let me know (this was cross-posted on struts-user BTW):
I have successfully integrated Tomcat 4.0.3 and Apache 2.0.35 using the mod_webapp WARP module. Works perfectly for all my servlets/jsp webapps that are non-struts. As soon as I try to access my strutstest webapp, or if I try the struts-example webapp, I get problems (and, yes, I verified that these both work wonderfully when accessing them via http://localhost:8080/struts-example/index.jsp, etc.). For example, when I access http://localhost/struts-example/index.jsp, I get the page but with an error message at the top of the page: ERROR: User database not loaded -- check servlet container logs for error messages. and checking the logs as suggested, catalina.out supplies this: Starting service Tomcat-Apache Apache Tomcat/4.0.3 New org.apache.struts.webapp.example.User Set org.apache.struts.webapp.example.User properties Begin event threw exception java.lang.IllegalArgumentException: object is not an instance of declaring class 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:327) at org.apache.struts.util.PropertyUtils.setSimpleProperty(PropertyUtils.java:988) at org.apache.struts.util.PropertyUtils.setNestedProperty(PropertyUtils.java:904) at org.apache.struts.util.PropertyUtils.setProperty(PropertyUtils.java:932) at org.apache.struts.util.BeanUtils.populate(BeanUtils.java:509) at org.apache.struts.digester.SetPropertiesRule.begin(SetPropertiesRule.java:120) at org.apache.struts.digester.Digester.startElement(Digester.java:528) at org.xml.sax.helpers.XMLReaderAdapter.startElement(XMLReaderAdapter.java:329) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1490) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500) at org.apache.crimson.parser.Parser2.parse(Parser2.java:305) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433) at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223) at javax.xml.parsers.SAXParser.parse(SAXParser.java:316) at javax.xml.parsers.SAXParser.parse(SAXParser.java:91) at org.apache.struts.digester.Digester.parse(Digester.java:755) at org.apache.struts.webapp.example.DatabaseServlet.load(DatabaseServlet.java:251) at org.apache.struts.webapp.example.DatabaseServlet.init(DatabaseServlet.java:175) at javax.servlet.GenericServlet.init(GenericServlet.java:258) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:808) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3266) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3395) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454) at org.apache.catalina.core.StandardHost.install(StandardHost.java:714) at org.apache.catalina.connector.warp.WarpConfigurationHandler.deploy(WarpConfigurationHandler.java:313) at org.apache.catalina.connector.warp.WarpConfigurationHandler.handle(WarpConfigurationHandler.java:117) at org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:189) at java.lang.Thread.run(Thread.java:539) register('-//Apache Software Foundation//DTD Struts Configuration 1.0//EN', 'jar:file:/usr/local/jakarta-tomcat-4.0.3-LE-jdk14/webapps/struts-example/WEB-INF/lib/struts.jar!/org/apache/struts/resources/struts-config_1_0.dtd' register('-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN', 'jar:file:/usr/local/jakarta-tomcat-4.0.3-LE-jdk14/webapps/struts-example/WEB-INF/lib/struts.jar!/org/apache/struts/resources/web-app_2_2.dtd' register('-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN', 'jar:file:/usr/local/jakarta-tomcat-4.0.3-LE-jdk14/webapps/struts-example/WEB-INF/lib/struts.jar!/org/apache/struts/resources/web-app_2_3.dtd' resolveEntity('-//Apache Software Foundation//DTD Struts Configuration 1.0//EN', 'http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd') Resolving to alternate DTD 'jar:file:/usr/local/jakarta-tomcat-4.0.3-LE-jdk14/webapps/struts-example/WEB-INF/lib/struts.jar!/org/apache/struts/resources/struts-config_1_0.dtd' New org.apache.struts.action.ActionFormBean Set org.apache.struts.action.ActionFormBean properties Begin event threw exception java.lang.IllegalArgumentException: object is not an instance of declaring class 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:327) at org.apache.struts.util.PropertyUtils.setSimpleProperty(PropertyUtils.java:988) at org.apache.struts.util.PropertyUtils.setNestedProperty(PropertyUtils.java:904) at org.apache.struts.util.PropertyUtils.setProperty(PropertyUtils.java:932) at org.apache.struts.util.BeanUtils.populate(BeanUtils.java:509) at org.apache.struts.digester.SetPropertiesRule.begin(SetPropertiesRule.java:120) at org.apache.struts.digester.Digester.startElement(Digester.java:528) at org.xml.sax.helpers.XMLReaderAdapter.startElement(XMLReaderAdapter.java:329) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1490) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.content(Parser2.java:1779) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1507) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:500) at org.apache.crimson.parser.Parser2.parse(Parser2.java:305) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433) at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223) at javax.xml.parsers.SAXParser.parse(SAXParser.java:316) at javax.xml.parsers.SAXParser.parse(SAXParser.java:91) at org.apache.struts.digester.Digester.parse(Digester.java:755) at org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1332) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:466) at javax.servlet.GenericServlet.init(GenericServlet.java:258) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:808) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3266) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3395) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454) at org.apache.catalina.core.StandardHost.install(StandardHost.java:714) at org.apache.catalina.connector.warp.WarpConfigurationHandler.deploy(WarpConfigurationHandler.java:313) at org.apache.catalina.connector.warp.WarpConfigurationHandler.handle(WarpConfigurationHandler.java:117) at org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:189) at java.lang.Thread.run(Thread.java:539) I then try to access the editRegistration.do action, and get this error displayed on screen and in apache_log.2002-04-21.txt: 2002-04-21 00:33:36 action: init 2002-04-21 00:33:36 action: Loading application resources from resource org.apache.struts.webapp.example.ApplicationResources 2002-04-21 00:33:36 action: Initializing configuration from resource path /WEB-INF/struts-config.xml 2002-04-21 00:33:36 StandardWrapperValve[action]: Allocate exception for servlet action javax.servlet.ServletException: Parsing error processing resource path /WEB-INF/struts-config.xml at org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1337) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:466) at javax.servlet.GenericServlet.init(GenericServlet.java:258) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:916) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:653) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) 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:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) 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.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) 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:174) 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.warp.WarpRequestHandler.handle(WarpRequestHandler.java:217) at org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:194) at java.lang.Thread.run(Thread.java:539) ----- Root Cause ----- java.lang.IllegalArgumentException: object is not an instance of declaring class at org.apache.struts.digester.Digester.startElement(Digester.java:531) at org.xml.sax.helpers.XMLReaderAdapter.startElement(XMLReaderAdapter.java:329) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1490) [snip] Strikes me that it may be a resource loading issue - is the webapp getting confused as to where to find /WEB-INF/struts-config.xml, etc.? Any one else using struts with Tomcat 4/Apache 2/mod_webapp and have it working fine for them? I can supply apache configs and tomcat configs as well if that will help. Thanx! jeff -- Jeffrey Bonevich Ann Arbor, Michigan [EMAIL PROTECTED] http://www.bonevich.com Hwæt! Wë Gär-Dena in geär-dagum, peod-cyninga, prym gefrünon, hü ða aepelingas ellen fremedon! -- To unsubscribe: <mailto:[EMAIL PROTECTED]> For additional commands: <mailto:[EMAIL PROTECTED]> Troubles with the list: <mailto:[EMAIL PROTECTED]>