在本地eclipse里面可以正常运行,可是放到集成服务器上面编译部署到tomcat之后,调用LoginAction时就会报错:org.apache.struts2.dispatcher.ServletDispatcherResult cannot be cast to com.opensymphony.xwork2.Result - action - file:/usr/local/tomcat/webapps/agile2012/WEB-INF/classes/struts.xml:30:57
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:368)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)root causejava.lang.ClassCastException: org.apache.struts2.dispatcher.ServletDispatcherResult cannot be cast to com.opensymphony.xwork2.Result
com.opensymphony.xwork2.ObjectFactory.buildResult(ObjectFactory.java:228)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:368)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:368)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)root causejava.lang.ClassCastException: org.apache.struts2.dispatcher.ServletDispatcherResult cannot be cast to com.opensymphony.xwork2.Result
com.opensymphony.xwork2.ObjectFactory.buildResult(ObjectFactory.java:228)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:368)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
解决方案 »
- 100分找解决办法
- 空的工程加入struts2的问过滤器之后访问报404
- java 调用数据库内容时 无法显示对应数据的问题
- Struts2配置文件include的问题
- tomcat热部署
- 100分!!! 请教soap命名空间问题!!
- 讨论:笨重的hibernate?
- spring、structs等开源项目中提供的各种包都是干什么用的
- OutOfMemory,内存泄漏了?大家帮我看看,谢谢!
- while (true)的线程异常结束
- 关于session.getAttribute的问题
- org.hibernate.QueryParameterException: Position beyond number of declared ordina
jre是一个;WEB-INF下面的lib是一个;Tomcat容器的lib是一个。还有别的么?我按照一楼的对比了下WEB-INF中jar包的数量和版本都是一样的啊,还有需要注意的地方么?struts.xml:30行就是一个action的定义:
<action name="login" class="action.LoginAction">
<result name="success" >/course/course_list.html</result>
<result name="error">error.jsp</result>
</action>LoginAction的代码也一并贴一下吧:package action;import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import model.Access;
import model.Person;
import model.dao.AccessDAO;
import model.dao.PersonDAO;
import model.dao.PersonRoleDAO;
import model.dao.RoleAccessDAO;
import model.dao._RootDAO;
import model.dao.KeyWordDAO;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L; private PersonDAO personDAO;
private PersonRoleDAO personRoleDAO;
private RoleAccessDAO roleAccessDAO;
private AccessDAO accessDAO;
private KeyWordDAO keywordDAO;
private Person person;
private String username;
private String password;
private List<Integer> roleList;
private List<Integer> accessIDList;
private List<Access> accessItemList;
private List<String> accessString;
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @SuppressWarnings("unchecked")
public String execute(){
_RootDAO.initialize();
personDAO = new PersonDAO();
person = new Person();
person.setName(username);
person.setPassword(password);
person = personDAO.check(person);
if(person!=null){
ActionContext ac=ActionContext.getContext();
Map sess=ac.getSession();
sess.put("uid",person.getId());
roleList = new ArrayList<Integer>();
accessIDList = new ArrayList<Integer>();
accessItemList = new ArrayList<Access>();
accessString = new ArrayList<String>();
personRoleDAO = new PersonRoleDAO();
roleAccessDAO = new RoleAccessDAO();
accessDAO = new AccessDAO();
keywordDAO = new KeyWordDAO();
roleList = personRoleDAO.getRoleByPersonID(person.getId());
for(Integer roleID:roleList)
accessIDList.addAll(roleAccessDAO.getAccessByRoleID(roleID));
for(Integer accessID:accessIDList)
accessItemList.addAll(accessDAO.getAccessByID(accessID));
for(Access accessItem:accessItemList)
{
accessString.add((keywordDAO.get(Integer.valueOf(accessItem.getSource())).getContent())
+(keywordDAO.get(Integer.valueOf(accessItem.getOperation())).getContent()));
}
sess.put("access",accessString);
return SUCCESS;
}
this.addFieldError("password", "invalid username or password");
return ERROR;
}}
虽然莫名奇妙的可以了,但是还是想知道为什么啊,谢谢各位了!