Hello, 

    This is driving me crazy.  I hope someone can enlighten me.  I am
using struts-faces and when I navigate to manageWFCollections.faces I
get the following error: Cannot find action 'saveWFCollection.do'
configuration.  For some reason struts cannot find what I specify in the
"<s:form" tag.  I am running tomcat 5.5 with struts-1.3.5.  I also
verified that I have no duplicate jars and checked several other
aspects.  I am just at a loss on this one.  Any help is greatly
appreciated.  Here is my set up (web.xml, struts-config.xml,
manageWFCollection.jsp):

--- web.xml
--------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>

   <!-- JSF Session state saving method --> 
   <context-param>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>server</param-value>
   </context-param>
   
   <!-- JavaServer Faces servlet definitions -->
   <servlet>
      <servlet-name>faces</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
  
   <!-- Struts Action servlet definitions -->
   <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>3</param-value>
      </init-param>
      <init-param>
         <param-name>detail</param-name>
         <param-value>3</param-value>
      </init-param>
      <load-on-startup>2</load-on-startup>
   </servlet>
  
   <!-- JavaServer Faces servlet mapping/via *.faces extension -->
   <servlet-mapping>
      <servlet-name>faces</servlet-name>
      <url-pattern>*.faces</url-pattern>
   </servlet-mapping>
   
   <!-- Struts servlet mapping/via *.do extension -->
   <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
   </servlet-mapping>
   
</web-app>

--- WEB-INF/struts-config.xml
----------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC 
   "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 
   "http://struts.apache.org/dtds/struts-config_1_3.dtd";>

<struts-config>

  <data-sources />
  
  <!-- Form beans -->
  <form-beans>
   <form-bean name="manageWFCollectionForm" 

type="com.ctgcentral.smart.workflows.ManageWFCollectionForm" />
  </form-beans>
  
  <global-exceptions />
  
  <!-- Global forwards -->
  <global-forwards>
   <forward name="manageWFCollection"
path="/manageWFCollection.faces"/>
  </global-forwards>
  
  <!-- Action mappings -->
  <action-mappings>
    
  <!-- Save collection -->
   <action path="/saveWFCollection"
type="com.ctgcentral.smart.workflows.ManageWFCollectionAction" 
           name="manageWFCollectionForm" scope="request"
validate="true" 
           input="manageWFCollection">
      <forward name="success" path="/defaultContent.faces"/>
   </action>
  
  </action-mappings>
  <!-- End action mappings -->
  
  <!-- Struts-Faces request processor -->
  <controller>
   <set-property property="inputForward" value="true"/>
   <set-property property="processorClass"

value="org.apache.struts.faces.application.FacesRequestProcessor"/>
  </controller>

  <!-- Messages file -->
  <message-resources
parameter="com.ctgcentral.smart.workflows.ApplicationResources" />

  <!-- Validator plugin -->
  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
                                             /WEB-INF/validation.xml"/>
  </plug-in>

</struts-config>

--- manageWFCollection.jsp - Where I am getting the error -------

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
<%@ taglib prefix="s" uri="http://struts.apache.org/tags-faces"; %>

<f:view>
<f:loadBundle var="messages"
basename="com.ctgcentral.smart.workflows.ApplicationResources"/>
<s:html locale="true">
<head>
   <title>
       <h:outputText value="#{messages['default.title']}"/>
   </title>
   <s:base id="base"/>
   <s:stylesheet path="/workflows.css"/>
</head>
<body>

<%-- Display errors if any --%>
<s:errors/>

<%-- Display form elements --%>
<s:form id="manageWFCollection" action="saveWFCollection.do"
focus="name"  
        onsubmit="return validateManageWFCollectionForm(this);">
        <h:inputHidden id="action" value="#{manageWFCollectionForm.action}"/>
   <h:inputHidden id="id" value="#{manageWFCollectionForm.id}"/>
   <table boder="0" cellpadding="2" cellspacing="1">
      <tr>
         <td align="right">
         <h:outputLabel for="name" styleClass="label">
            <h:outputText value="#{messages['workflows.terms.name']}"/>:
         </h:outputLabel>
         </td>
         <td>
            <h:inputText id="name" size="29" styleClass="field"
                         value="#{manageWFCollectionForm.name}"/>
         </td>
      </tr>
      <tr>
         <td align="right" valign="top">
         <h:outputLabel for="description" styleClass="label">
            <h:outputText
value="#{messages['workflows.terms.description']}"/>:
         </h:outputLabel>
         </td>
         <td>
         <h:inputTextarea rows="5" cols="23" styleClass="field"

value="#{manageWFCollectionForm.description}"/>
        </td>
      </tr>
      <tr>
         <td>
         </td>
         <td>
         <h:commandButton id="submit" type="SUBMIT" styleClass="submit"
                          value="#{messages['form.submit']}"/>
         &nbsp;
         <h:commandButton id="reset" type="RESET" styleClass="reset" 
                          value="#{messages['form.reset']}"/>
         </td>
      </tr>
   </table>   
</s:form>

<%-- Call the validation javascript --%>
<s:javascript formName="manageWFCollection"
method="validateManageWFCollectionForm" 
              dynamicJavascript="true" staticJavascript="false" 
              cdata="false"/>
<script language="Javascript1.1" src="staticJavascript.jsp"></script>
</body>
</s:html>
</f:view>

-----------------------------------------------------------------------


Thanks,
Jonathan Bailey
Software Engineer
CTG

Reply via email to