We have successfully deployed Struts app from Forte4J 3 to Tomcat 4. I still don't feel that we have a complete understanding of path issues, and we finally got the links to html help files, which initially worked in the IDE and not when deployed, to work in both places through trial and error. We ended up with both JSPs and html files outside WEB-INF.
I'm a relative newbie, but since I've gotten help from this list before and I don't see other responses to your request, I'll try to answer your q's inline below: -----Original Message----- From: Struts Newsgroup [mailto:@[EMAIL PROTECTED]] Sent: Wednesday, May 15, 2002 3:40 PM To: [EMAIL PROTECTED] Subject: Autodeploying Struts apps from Forte to Tomcat via WARfile -- BROKEN?!? Subject: Autodeploying Struts apps from Forte to Tomcat via WARfile -- BROKEN?!? From: "Jeff" <[EMAIL PROTECTED]> === Has -anybody- ever managed to build a Struts-using web app inside Forte or Netbeans AND successfully autodeploy the app using a WARfile created by Forte/Netbeans to a standalone server running Tomcat 4? ** Yes. I'm ready to throw in the towel and write it off as broken. After three weeks of on-and-off experimentation and process of elimination, I have yet to get a warfile-autodeployed Struts app created by Forte to work under Tomcat. I've tried both path mapping and extension mapping, with a variety of deployment scenarios, and seem to inevitably wind up with one of three errors: - A 403 error because Tomcat didn't properly associate the path with the Action servlet ex: /path/* mapped to Action servlet, application deployed to "$CATALINA_HOME/webapps/path", "/foo" mapped as an Action Path, browser attempts to launch http://host:8080/path/foo - A 500 error because Tomcat associated the path with Action servlet, but wasn't able to find a matching action path in struts-config.xml ex: /path/* mapped to Action servlet, application deployed to "$CATALINA_HOME/webapps/path", "/foo" and "/path/foo" mapped as Action paths, browser attempts to launch http://host:8080/path/foo or http://host:8080/path/foo.do - A 500 error because the XML parser couldn't parse struts-config.xml ex: application deployed to "$CATALINA_HOME/webapps/path", with "/foo", "/path/foo", AND "/path/path/foo" mapped as action paths, browser attempts to launch http://host:8080/path/foo or http://host:8080/path/foo.do same, but application deployed to $CATALINA_HOME/ROOT I'm convinced Forte is screwing up somewhere, and it's NOT an XML parser issue, because the .war files distributed with Struts -do- work and autodeploy. It's just the web apps autodeployed from Forte-built warfiles that invariably crash and burn. Incriminatingly (for Forte) enough, if I unpack the Struts demo apps using Winzip, delete the META-INF directory, mount the remaining directory into Forte and build it... I get the same result: it works in Forte's Tomcat, but crashes and burns upon deployment to a standalone Tomcat. If you've actually gotten a Struts app built with Forte to autodeploy successfully... * did you use path or extension mapping? What value did you use (a snip from web.xml would be great) ** web.xml snip: <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>nocache</param-name> <param-value>true</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> * did you deploy it by dumping the .war file into Tomcat's webapps dir and letting it autodeploy into a subdirectory of webapps named after the .war file, or did you have to do something special? ** Nothing special. * give me a sample URL (http://hostname:8080/...) that worked, along with its corresponding entry in struts-config.xml (<action... path="/..."). Were you able to use the same root-relative URL in both Forte and Tomcat? In other words, did you find some "/arbirtary_path/path_mapped_to_ActionServlet/path_defined_in_struts-config. xml" that worked under Forte's built-in Tomcat AND an external Tomcat? ** URL = http://basanizo:8083/<war-file-name with 8083 being the port name specified in server.xml ** struts-config snip: <!-- ========== Action Mapping Definitions ============================== --> <action-mappings type="org.apache.struts.action.ActionMapping"> <!-- NAME == form-bean name parameter that gets set in HTTP session --> <!-- "Path" attribute value in a "forward" is equal to "path" attribute in an "action" plus ".do", or else it equals a forward --> <!-- "Reset" doesn't need to be explicitly configured if we want the default action of clearing form and reminaing where you're at to happen --> <action path="/SelectOrganization" type="com.athensgroup.projtrack.controller.org.SelectOrganizationAction" input="/jsp/Organization/SelectOrganization.jsp" name="orgForm" scope="session"> <forward name="edit" path="/EditOrganization.do" redirect="true" /> </action> <action path="/AddOrganization" type="com.athensgroup.projtrack.controller.org.AddOrganizationAction" input="/jsp/Organization/AddOrganization.jsp" name="orgForm" scope="session"> <forward name="save" path="/AddOrganization.do" redirect="true" /> <forward name="proceed" path="/AddProgram.do" redirect="true" /> </action> <action path="/EditOrganization" type="com.athensgroup.projtrack.controller.org.EditOrganizationAction" input="/jsp/Organization/EditOrganization.jsp" name="orgForm" scope="session"> <forward name="save" path="/SelectOrganization.do" redirect="true" /> <forward name="proceed" path="/AddProgram.do" redirect="true" /> </action> <action path="/SelectProgram" type="com.athensgroup.projtrack.controller.prog.SelectProgramAction" input="/jsp/Program/SelectProgram.jsp" name="progForm" scope="session"> <forward name="edit" path="/EditProgram.do" redirect="true" /> <forward name="add" path="/AddProgram.do" redirect="true" /> </action> <action path="/AddProgram" type="com.athensgroup.projtrack.controller.prog.AddProgramAction" input="/jsp/Program/AddProgram.jsp" name="progForm" scope="session"> <forward name="save" path="/AddProgram.do" redirect="true" /> <forward name="proceed" path="/AddProject.do" redirect="true" /> </action> <action path="/EditProgram" type="com.athensgroup.projtrack.controller.prog.EditProgramAction" input="/jsp/Program/EditProgram.jsp" name="progForm" scope="session"> <forward name="save" path="/SelectProgram.do" redirect="true" /> <forward name="proceed" path="/AddProgram.do" redirect="true" /> </action> <action path="/AddProject" type="com.athensgroup.projtrack.controller.proj.AddProjectAction" input="/jsp/Project/AddProject.jsp" name="projForm" scope="session"> <forward name="save" path="/AddProject.do" redirect="true" /> <forward name="edit" path="/EditDefinition.do" redirect="true" /> <forward name="add" path="/AddProgram.do" redirect="true" /> </action> <action path="/SearchProjects" scope="session" name="searchProjForm" input="/jsp/Project/SearchProjects.jsp" type="com.athensgroup.projtrack.controller.proj.SearchProjectsAction"> <forward name="edit" path="/ChangeStatus.do" redirect="true" /> <forward name="submit" redirect="false" path="/jsp/Project/SearchProjects.jsp" /> </action> <action path="/EditDefinition" type="com.athensgroup.projtrack.controller.proj.EditDefinitionAction" input="/jsp/Project/EditDefinition.jsp" name="projForm" scope="session"> <forward name="save" path="/EditDefinition.do" redirect="true" /> </action> <action path="/EditProcessGates" type="com.athensgroup.projtrack.controller.proj.EditProcessGatesAction" input="/jsp/Project/EditProcessGates.jsp" name="projForm" scope="session"> <forward name="save" path="/EditProcessGates.do" redirect="true" /> </action> <action path="/EditBudget" type="com.athensgroup.projtrack.controller.proj.EditBudgetAction" input="/jsp/Project/EditBudget.jsp" name="projForm" scope="session"> <forward name="save" path="/EditBudget.do" redirect="true" /> </action> <action path="/EditStaffing" type="com.athensgroup.projtrack.controller.proj.EditStaffingAction" input="/jsp/Project/EditStaffing.jsp" name="projForm" scope="session"> <forward name="add" path="/EditStaffing.do" redirect="true" /> <forward name="delete" path="/EditStaffing.do" redirect="true" /> </action> <action path="/EditBilling" type="com.athensgroup.projtrack.controller.proj.EditBillingAction" input="/jsp/Project/EditBilling.jsp" name="projForm" scope="session"> <forward name="save" path="/EditBilling.do" redirect="true" /> </action> <action path="/ActivateProject" type="com.athensgroup.projtrack.controller.proj.ActivateProjectAction" input="/jsp/Project/ActivateProject.jsp" name="projForm" scope="session"> <forward name="save" path="/ChangeStatus.do?next_state=active" redirect="true" /> </action> <action path="/EditAttributes" type="com.athensgroup.projtrack.controller.proj.EditAttributesAction" input="/jsp/Project/EditAttributes.jsp" name="projForm" scope="session"> <forward name="save" path="/EditAttributes.do" redirect="true" /> <forward name="add" path="/EditAttributes.do" redirect="true" /> <forward name="delete" path="/EditAttributes.do" redirect="true" /> </action> <action path="/CompleteProject" type="com.athensgroup.projtrack.controller.proj.CompleteProjectAction" input="/jsp/Project/CompleteProject.jsp" name="projForm" scope="session"> <forward name="save" path="/ChangeStatus.do?next_state=complete" redirect="true" /> <forward name="add" path="/CompleteProject.do" /> <forward name="delete" path="/CompleteProject.do" /> </action> <action path="/ChangeStatus" type="com.athensgroup.projtrack.controller.proj.ChangeStatusAction" input="/jsp/Project/ChangeStatus.jsp" name="projForm" scope="session"> <forward name="save" path="/ChangeStatus.do" /> </action> On the other hand, if you're fairly confident that Forte's warfile creation is simply broken with respect to Struts apps, I'd like to know that once and for all too. Likewise, if somebody has a sample Ant file specific to the task of deploying a Struts-using app from Forte to Tomcat, I'd love to see it/them, because I'm pretty sure it's the only way I'm ever going to get it to work anytime soon. ** Sorry, haven't played with Ant directly yet; intend to . . . -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>