Olá pessoal preciso de ajuda!!!
Vou declarar abaixo toda a configuração do Strus 2 que eu fiz no netbeans 6.9.1 e o erro que está dando:
Nome do projeto Struts2
Segue abaixo a imagem da estrutura do projeto

Agora vou escrever como está cada classe:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>br.com.jm.s2a.calculator.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<script type="text/javascript">
<!--
location.href="/s2a/calculator.action";
-->
</script>
</body>
</html>
main.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Entre com os valores para calcular</title>
</head>
<body>
<s:form action="calculator!calculate" method="post">
<s:textfield label="Initial Ammount" name="request.ammount"/>
<s:textfield label="Number of Parcles" name="request.numberOfParcels"/>
<s:textfield label="Interest" name="request.interest"/>
<s:submit/>
</s:form>
</body>
</html>
result.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Calculation Rersult</title>
</head>
<body>
Result: <s:text name="%{formattedResult}"/>
<br>
<br>
<a href="<s:url action="calculator"/>">Back</a>
</body>
</html>
dentro do pacote : br.com.jm.s2a.calculator tem a classe CalculationRequest
package br.com.jm.s2a.calculator;
public class CalculationRequest {
private double ammount;
private double interest;
private int numberOfParcels;
public double getAmmount() {
return ammount;
}
public void setAmmount(double ammount) {
this.ammount = ammount;
}
public double getInterest() {
return interest;
}
public void setInterest(double interest) {
this.interest = interest;
}
public int getNumberOfParcels() {
return numberOfParcels;
}
public void setNumberOfParcels(int numberOfParcels) {
this.numberOfParcels = numberOfParcels;
}
}
dentro do pacote : br.com.jm.s2a.calculator.action tem a classe CalculatorAction
package br.com.jm.s2a.calculator.action;
import br.com.jm.s2a.calculator.CalculationRequest;
import br.com.jm.s2a.calculator.factory.CalculatorFactory;
import br.com.jm.s2a.calculator.service.CalculatorService;
import java.text.NumberFormat;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
@Results (
{
@Result(name="success", value="main.jsp"),
@Result(name="showResult", value="result.jsp")
}
)
public class CalculatorAction {
private CalculatorService service = CalculatorFactory.getCalculatorService();
private CalculationRequest request;
private double result;
public CalculationRequest getRequest() {
return request;
}
public void setRequest(CalculationRequest request) {
this.request = request;
}
public String getFormattedResult () {
NumberFormat nf = NumberFormat.getCurrencyInstance();
return nf.format(result);
}
public String execute () {
System.out.println("PASSOU AQUI");
return "success";
}
public String calculate () {
result = service.calculateCompoundInterest(request);
return "showResult";
}
}
dentro do pacote : br.com.jm.s2a.calculator.factory tem a classe CalculatorFactory
package br.com.jm.s2a.calculator.factory;
import br.com.jm.s2a.calculator.service.CalculatorService;
import br.com.jm.s2a.calculator.service.CalculatorServiceImpl;
public class CalculatorFactory {
private static final CalculatorService calculatorService = new CalculatorServiceImpl();
public static CalculatorService getCalculatorService() {
return calculatorService;
}
}
dentro do pacote : br.com.jm.s2a.calculator.service tem a interface CalculatorService e a classe CalculatorServiceImpl
package br.com.jm.s2a.calculator.service;
import br.com.jm.s2a.calculator.CalculationRequest;
public interface CalculatorService {
public double calculateCompoundInterest(CalculationRequest request);
}
package br.com.jm.s2a.calculator.service;
import br.com.jm.s2a.calculator.CalculationRequest;
import java.math.BigDecimal;
public class CalculatorServiceImpl implements CalculatorService{
public double calculateCompoundInterest(CalculationRequest request) {
BigDecimal interest;
if (request.getInterest() > 1) {
interest = new BigDecimal(request.getInterest()).divide(
new BigDecimal(100),3, BigDecimal.ROUND_FLOOR);
} else {
interest = new BigDecimal(request.getInterest());
}
interest = interest.add(new BigDecimal(1));
BigDecimal periodCalculation = interest.pow(request.getNumberOfParcels());
BigDecimal newAmount = new BigDecimal(request.getAmmount()).multiply(periodCalculation);
return newAmount.doubleValue();
}
}
Estou usando os seguintes libs abaixo nesse exemplo do Struts 2:
[b]- commons-logging-1.0.4
- freemarker-2.3.8
- jstl
- ognl-2.6.11
- standard
- struts2-core-2.0.6
- xwork-2.0.1[/b]
Quando eu executo no netbeans dá o seguinte erro:
Aparece isso abaxio na url:
http://localhost:8080/s2a/calculator.action
e a imagem abaixo mostra o erro:

o Erro que da no netbeans ao executar, mostrado no console:
INFO: Loading application struts2 at /struts2
INFO: struts2 was successfully deployed in 705 milliseconds.
INFO: Parsing configuration file [struts-default.xml]
INFO: Parsing configuration file [struts-plugin.xml]
INFO: Parsing configuration file [struts.xml]
WARNING: Settings: Could not parse struts.locale setting, substituting default VM locale
INFO: Detected GenericsObjectTypeDeterminer, initializing it...
INFO: Detected AnnotationXWorkConverter, initializing it...
INFO: Scanning for classes in [/C:/Users/Helder/Documents/NetBeansProjects/struts2/build/web/WEB-INF/classes/br/com/jm/s2a/calculator/action/] matching criteria: org.apache.struts2.config.ClasspathConfigurationProvider$1@300ec4
Alguem tem idéia o que possa estar acontecendo?
Estou usando o servidor do próprio netbeans o GlassFish Server 3.
Se alguem tiver um tutorial do Struts 2 legal com anotações, me passa por favor, pois, preciso executar esse framework no netbeans 6.9.1
Obrigado.