You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by john lee <sh...@yahoo.com.INVALID> on 2017/07/19 21:13:14 UTC
struts2 +rest service problem
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"/>
Re: struts2 +rest service problem
Posted by Lukasz Lenart <lu...@apache.org>.
2017-07-19 23:13 GMT+02:00 john lee <sh...@yahoo.com.invalid>:
> 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)
In most cases this means you have multiple versions of the same Struts
JAR on classpath.
Regards
--
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: struts2 +rest service problem
Posted by john lee <sh...@yahoo.com.INVALID>.
I did add conventions plug-in,
From: Ken McWilliams <ke...@gmail.com>
To: Struts Users Mailing List <us...@struts.apache.org>; john lee <sh...@yahoo.com>
Sent: Wednesday, July 19, 2017 4:52 PM
Subject: Re: struts2 +rest service problem
As mentioned in the other thread have you added the conventions plug-in?
The indicated error indicates a failure of Struts2 to be able to find what it needs so your posted source should not be at issue.
On Wed, Jul 19, 2017 at 3:13 PM, john lee <sh...@yahoo.com.invalid> wrote:
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"/>
--
Sent from my C64 using a 300 baud modem
Re: struts2 +rest service problem
Posted by Ken McWilliams <ke...@gmail.com>.
As mentioned in the other thread have you added the conventions plug-in?
The indicated error indicates a failure of Struts2 to be able to find what
it needs so your posted source should not be at issue.
On Wed, Jul 19, 2017 at 3:13 PM, john lee <sh...@yahoo.com.invalid>
wrote:
>
> 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"/>
>
>
>
>
>
--
Sent from my C64 using a 300 baud modem