刚搭建个s2sh的框架 就出了问题 页面异常如下:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [userAction]
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:100)
java.lang.ClassNotFoundException: userAction
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
org.apache.struts2.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:111)
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:98)
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:76)
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:356)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.applicationContext.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop> <!--  <prop key="hibernate.hbm2ddl.auto">create</prop>  --> </props>
</property>
<property name="mappingResources">
<list>
<value>com/test/bean/Users.hbm.xml</value>
</list> </property>
</bean> <bean id="userDao" class="com.test.dao.impl.UserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <bean id="userService" class="com.test.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean> <bean id="userAction" class="com.test.action.UserAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean></beans>struts.xml如下:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="mytest" extends="struts-default">
<action name="register" class="userAction" method="register">
<result name="success" type="redirect">/welcom.jsp</result>
<result name="input">/register.jsp</result>
</action>
</package>
</struts>    register.jsp页面如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"   %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <title>注册页面</title>
    

<script type="text/javascript" src="/js/jquery-1.4.2.js"></script>  </head>
  
  <body>
     <s:form action="register" >
      <s:textfield name="user.username" label="username"></s:textfield>
      <s:password name="user.password" label="password"  ></s:password>
      <s:textfield name="user.age" label="age"></s:textfield>
      <s:textfield name="user.birthday" label="birthday"></s:textfield>
      <s:textfield name="user.email" label="email"/>
      <s:submit></s:submit>
     </s:form>
  </body>
</html>UserAction.java如下:
package com.test.action;import java.util.Date;import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.test.bean.Users;
import com.test.service.UserService;public class UserAction extends ActionSupport implements ModelDriven<Users>{

// private 

private Users user;
private UserService userService;
public Users getUser() {
return user;
} public void setUser(Users user) {
this.user = user;
} public UserService getUserService() {
return userService;
} public void setUserService(UserService userService) {
this.userService = userService;
} @Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("execute 被调用");
return SUCCESS;
} public String login(){
if(!userService.checkUser(user)){
return "fail";
}

return SUCCESS;
}
public String register(){
System.out.println("action 被调用"+user);
this.user.setRegisterDate(new Date());
userService.saveUser(user);
return SUCCESS;
} @Override
public Users getModel() {
// TODO Auto-generated method stub
return user;
}
}

解决方案 »

  1.   

    spring容器中代理的action找不到,检查下jar完整不请参考:
    http://topic.csdn.net/u/20100119/02/1519e105-b4ae-41b5-bad4-e5dad51797e7.html
      

  2.   

    检查web.xml,看下加载了spring未,
    并在strtus.xml中加上这句
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <constant name="struts.objectFactory" value="spring" />
      

  3.   

    没有找到 userAction 看下WEB配置
      

  4.   

    问题解决了,少了asm。jar,谢谢各位