struts.xml配置:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default" namespace="/">
<!-- action.class from the applicationContext.xml, not the real class -->
<action name="sumAction" class="SUM">
<result name="success">/positive.jsp</result>
<result name="error">/negative.jsp</result>
<result name="input">/sum.jsp</result>
</action>
</package>
<constant name="struts.objectFactory" value="spring" /> 
</struts> 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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<bean id="SUM" class="sdfi.FirstAction" name="SUM">
<property name="operand1">
<value>111</value>
</property>
<property name="operand2">
<value>222</value>
</property>
</bean>
</beans>
web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <!-- 用来定位Spring XML文件的上下文配置 -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext*.xml</param-value>
 </context-param>
 <!-- 配置Struts2 -->
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <!-- 字符集过滤 -->
 <filter>
  <filter-name>setCharacterEncoding</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>setCharacterEncoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <!-- 启动Spring Bean的工厂监听器 -->
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <!-- 配置log4j -->
 <servlet>
  <servlet-name>log4j</servlet-name>
  <servlet-class>log4j.Log4jInit</servlet-class>
  <init-param>
   <param-name>log4j</param-name>
   <param-value>WEB-INF/classes/log4j.properties</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>log4j</servlet-name>
  <url-pattern>/log4j</url-pattern>
 </servlet-mapping>
 <!-- 配置欢迎页 -->
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>
也导入了struts2-spring-plugin-2.0.14.jar报错为:
严重: Exception starting filter struts2
Action class [SUM] not found - action - file:/D:/apache-tomcat-6.0.29/webapps/struts2/WEB-INF/classes/struts.xml:8:40
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:374)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:329)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Jan 20, 2011 9:11:16 AM org.apache.catalina.core.StandardContext start
严重: Error filterStart
Jan 20, 2011 9:11:16 AM org.apache.catalina.core.StandardContext start
严重: Context [/struts2] startup failed due to previous errors
Jan 20, 2011 9:11:16 AM org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext

解决方案 »

  1.   

    Action class [SUM] not found ,应该是你配置文件的问题,<action name="sumAction" class="SUM">你把这里的class加上你的包路径试试,估计是这里没有包路径,在默认的根目录下找不到这个类的原因。
      

  2.   

    你bean里面 又是ID 又是NAME的 把name去掉看看 楼上的 在action里面加class路径干什么呢?那你还要spring做什么?
      

  3.   

    你好,我就是一直弄不对,才把name加上的。去掉name也是不行啊。
      

  4.   

    你好,我用的spring,所以struts.xml里面的class要与applicationContext.xml文件里面的bean id对应。
      

  5.   

    1、在applicationContext.xml中新增一个bean(假设名称为UserLogin),并在struts.xml中配置在“SUM”这个Action前。启动服务器,查看控制台打印的错误信息是否报UserLogin这个Action找不到的异常。
    如果是,看2
    2、把applicationContext.xml直接放在项目的src包下,并把web.xml中applicationContext.xml的路径更改成:
    <param-value>classpath:applicationContext.xml</param-value>
    重启服务器测试
      

  6.   

    把<constant name="struts.objectFactory" value="spring" />移到package上面试下 
    或者采用<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
    再加上struts.objectFactory=spring 配置试下
      

  7.   


    applicationContext.xml中的action配置是可以去掉的
    配置<constant name="struts.objectFactory" value="spring" />
    然后<action name="sumAction" class="XXXX.xxxxx.SUM">
      

  8.   

    <bean id="SUM" class="sdfi.FirstAction" scope="prototype">