Please help for the struts2 + rest service http://beta-dev/ecommerce/employee.xml
return the following error report Struts Problem Report Struts has detected an unhandled exception: | Messages: | - com.thoughtworks.xstream.XStream - com/thoughtworks/xstream/XStream - java.lang.reflect.InvocationTargetException - java.lang.RuntimeException: java.lang.reflect.InvocationTargetException - java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException - java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException | | File: | org/apache/catalina/loader/WebappClassLoader.java | | Line number: | 1,714 | Stacktraces java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301) com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:492) com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:530) source code: cat Employee*.java package xyz; import xyz.*; import java.util.Map; import org.apache.struts2.rest.DefaultHttpHeaders;import org.apache.struts2.rest.HttpHeaders;import com.opensymphony.xwork2.ModelDriven;public class EmployeeController implements ModelDriven<Object>{ private static final long serialVersionUID = 1L; private String id; private Object model; private EmployeeRepository employeeRepository = new EmployeeRepository(); private static Map<String,Employee> map; { map = employeeRepository.findAllEmployee(); } public HttpHeaders index() { model = map; return new DefaultHttpHeaders("index").disableCaching(); } public String add(){ Integer empId = Integer.parseInt(id); Employee emp = new Employee(empId,"Ramesh", "PQR"); model = emp; return "SUCCESS"; } public String getId() { return id; } public void setId(String id) { model = employeeRepository.getEmployeeById(id); this.id = id; } @Override public Object getModel() { return model; }} package xyz; import java.util.*;import xyz.*; public class Employee { private Integer id; private String name; private String company; public Employee(Integer id, String name, String company){ this.id =id; this.name = name; this.company = company; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; }} package xyz; import java.util.*;import java.sql.Timestamp;import xyz.*; import java.util.HashMap;import java.util.Map; public class EmployeeRepository { private static Map<String,Employee> map = new HashMap<String,Employee>(); public EmployeeRepository(){ map.put("111", new Employee(111, "Ram", "ABC")); map.put("222", new Employee(222, "Shyam", "EFG")); map.put("333", new Employee(333, "Mohan", "XYZ")); } public Employee getEmployeeById(String id){ return map.get(id); } public Map<String,Employee> findAllEmployee(){ return map; }} my configuration for struts.xml <include file="struts-default.xml"/> <!-- rest and regular coexist--> <constant name="struts.action.extension" value="xhtml,,xml,json,action"/> <constant name="struts.mapper.class" value="rest" /> <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" /> <constant name="struts.mapper.prefixMapping" value="/rest:rest,:struts"/> <constant name="struts.convention.action.suffix" value="Controller"/> <constant name="struts.convention.action.mapAllMatches" value="true"/> <constant name="struts.convention.default.parent.package" value="rest-default"/> <constant name="struts.convention.package.locators" value="example"/>