Aplicação didatica JavaWeb Struts

Pessoal,

Estou tentando desenvolver aplicação para fim didatico, a pricípio uma calculadora, utilizando o frameWork Struts 1.3.10
IDE eclipse Galileu
Servidor Apache Tomcat 6.0.20

Me deparei com o seguinte erro no servidor apache Tomcat 6.0.20:

Meu arquivo web.xml é o seguinte:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more...
-->

  <!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <display-name>Calculadora</display-name>
  
  <!-- Standard Action Servlet Configuration -->
  <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>
    <load-on-startup>2</load-on-startup>
 </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>

Meu arquivo struts-config.xml é o seguinte:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<!--
This is a blank Struts configuration file with an example
     welcome action/page and other commented sample elements.
..... -->
<struts-config>

  <!-- ================================================ Display Name -->
  <display-name>Calculadora</display-name>
  
  <!-- ================================================ Description -->
  <description>Calculadora</description>
      
  <!-- ================================================ Form Bean Definitions -->
  <form-beans>
    
    <form-bean name="calcForm" type="calc.CalculadoraForm">
      <form-property name="vlr1" type="java.lang.String"/>
      <form-property name="vlr2" type="java.lang.String"/>
    </form-bean>
    
  </form-beans>
  <!-- ========================================= Global Exception Definitions -->
  <global-exceptions>
  </global-exceptions>
   
  <global-forwards>
    <!-- Default forward to "Welcome" action  Demonstrates using index.jsp to forward -->
    <forward name="calc" path="/Calc.do"/>
  </global-forwards>
  
  <!--=========================================== Action Mapping Definitions  -->
  <action-mappings>
	<!-- Default "Welcome" action  Forwards to Welcome.jsp -->
        <!-- <action path="/Welcome" forward="/pages/Welcome.jsp"> </action>  -->

    <!-- Minha action default para pag. Calc.jsp -->
    <action
    	path="/Calc"
        forward="/pages/Calc.jsp">
    </action>

    <action path="/Calc" name="calcForm" type="calc.CalculadoraAction" scope="request" validate="true">
      <forward name="resultado" path="/calc.jsp"/>
      <forward name="erro" path="/calc.jsp"/>
    </action>
    
  </action-mappings>
  
  <controller></controller>
        
 <!-- ======================================== Message Resources Definitions  -->     
  <message-resources parameter="MessageResources"/>
  
  <!--========================== Plug Ins Configuration  ===================== 
  		Tiles plugin 
         This plugin initialize .....
  -->
  <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>

Minha página Calc.jsp:


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html:html>
	<head>
	<title>Calculadora</title>
	<html:base/>
	</head>

<body bgcolor="white">
	<html:form action="calc.do" method="post">
	
		Digite valor 1:<html:text name="vlr1" property="name" size="15" /> <br />
		Digite valor 2:<html:text name="vlr2" property="name" size="15" /> <br />
		
		<p>
		
			<html:submit >
				<bean:message key="button.submit" arg0="+"/>		
			</html:submit>

			<html:submit >
				<bean:message key="button.submit" arg0="-"/>		
			</html:submit>

			<html:submit >
				<bean:message key="button.submit" arg0="/"/>		
			</html:submit>

			<html:submit >
				<bean:message key="button.submit" arg0="*"/>		
			</html:submit>
			
			<html:cancel />
		
		</p>
		<p>
			Resultado: ${resultado}
		</p>
		<p>
			<html:errors property="calc.inteiros"/>
			<html:errors property="calc.params"/>
			<html:errors property="calc.operador"/>
		</p>
				
	</html:form>
</body>
</html:html>

Minha Classe ActionForm:

package calc;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class CalculadoraForm extends ActionForm {
	/**
	 * 
	 */
	private static final long serialVersionUID = 234111L;
	
	private String vlr1 = null;
	private String vlr2 = null;
	private Character op = null;  
	
	
	public void setOperador(Character op){
		
		this.op = op;
		
	}
	
	public void setValor1(String vlr1){
		
		this.vlr1 = vlr1;
		
	}
	
	public void setValor2(String vlr2){
		
		this.vlr2 = vlr2;
		
	}
	
	public Character getOperador(){
		
		return op;
		
	}
	
	public String getValor1(){
		
		return vlr1;
		
	}
	
	public String getValor2(){
		
		return vlr2;
		
	}
	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
		
		ActionErrors errors = new ActionErrors();
		
		try{
			
			Integer.parseInt(getValor1());
			Integer.parseInt(getValor2());
			
		}catch(NumberFormatException e){
			
			errors.add("calc.inteiros", new ActionMessage("calc.inteiros"));
			
		}
		
		if ( (getValor1() == null) || (getValor2() == null) || (getOperador() == null ) || (getOperador().equals("")) ) {
			
			errors.add("calc.params", new ActionMessage("calc.params"));
			
		}
		
		return errors;
		
	}	
		
}

Meu Action:

package calc;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class CalculadoraAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		
		Integer resultado = null;
		
		try{
			
			CalculadoraForm formCalc =(CalculadoraForm)form;
			Calculadora calc = new Calculadora();
			
			int num1 = Integer.parseInt(formCalc.getValor1());
			int num2 = Integer.parseInt(formCalc.getValor2());

			resultado = Integer.valueOf( calc.calcula(num1, formCalc.getOperador(), num2) );
			
		}catch(IllegalArgumentException e){
			
			ActionErrors errors = new ActionErrors();
			
			errors.add("calc.operador", new ActionMessage("calc.operador"));
			addErrors(request, errors);
			return mapping.findForward("erro");
			
		}
		
		request.setAttribute("resultado", resultado);
		
		return mapping.findForward("resultado");
		
	}
	
}

Bom segundo o erro: java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null.

Mas o path do meu FowardConfig pelo que vi está preenchido.

Agradeço desde já a colaboração.

eclipse Galileu
Apache Tomcat 6.0.20

frameWorks??
:shock:

Obrigado pela observação …
no calor da dúvida juntei tudo em frameworks …
Alguma sugestão?