你先单独测试一下struts 能不能用

解决方案 »

  1.   

    我一般不这么整合,不用Spring管理action,因为action不应该涉及到复杂的方法,只是返回给页面数据。
      

  2.   

    Spring+hibernate
    Struts+hibernate
    都没什么问题
    如果不整合Spring和Struts,只在wen.xml中使用listener加载spring,不用struts的时候能用,
    一旦在web.xml中再加入了
    <servlet> 
         <servlet-name>action </servlet-name> 
         <servlet-class>org.apache.struts.action.ActionServlet </servlet-class> 
        ............ 
       </servlet-mapping>
    又就不能用了,什么原因啊?
    用的eclipse6 
      

  3.   

    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/spring*.xml</param-value>
    </context-param>   
    <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener>
    <listener>
    <listener-class>
    org.springframework.web.context.request.RequestContextListener
    </listener-class>
    </listener>
         <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>detail</param-name>
                <param-value>2</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
            </servlet>
      
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
      

  4.   

        <listener>
            <listener-class>
                org.springframework.web.context.request.RequestContextListener
            </listener-class>
        </listener>

    午饭以后试试,只用org.springframework.web.context.request.ContextLoaderListener
    为什么加入Struts的action就出错呢?
    Struts中整合Spring还是出错,快崩溃了。
      

  5.   

    应该是web.xml的问题,看看有没有ActionServlet的配置,还有就是sping有指向ActionServlet路径的配置
      

  6.   

    web.xml没问题
    如果不用
    <listener> 
         <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> 
    </listener> 
    不加spring,只用struts一直没问题
    或者只用spirng+servlet  不用struts也没问题
    在web.xml中配置了spring,在配置了struts就不行了
    在struts配置文件中使用plugin也不行,.do文件不能访问,去掉plugin又行了
    头都大了
      

  7.   

    把LISTENER换成SERVLET试试.或
    把SPRING2换成SPRING1试试.
      

  8.   

    HTTP Status 404 - Servlet action is not available--------------------------------------------------------------------------------type Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.提示这种错误
    难道真要换回Spring1去?
      

  9.   

    你使用Struts1.1呢?
    看你的配置没有问题,
      

  10.   

    用的1.2配置没什么问题 不用spring的时候struts一点问题没有
    不用spring管理struts的action,就只在struts的配置文件中使用plugin载入spring,也是一样的错误,.do文件都提示HTTP Status 404 - Servlet action is not available 
      

  11.   

    一个配置片段(struts1+spring2) lz参照下
    spring管理struts的action,action不用写type
    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config>  <data-sources />  <form-beans >
        <form-bean name="userForm" type="org.tie.struts.form.UserForm" />  </form-beans>
      <global-exceptions />  <global-forwards />  <action-mappings >
        <action
          attribute="userForm"
          input="/index.jsp"
          name="userForm"
          path="/user"
          scope="request"
        >
          <forward name="success" path="/success.jsp" />
          <forward name="failure" path="/index.jsp" />
        </action>
      </action-mappings>
      <controller>  <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor" />  </controller>  <message-resources parameter="org.tie.struts.ApplicationResources" />
      <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />  </plug-in>
      </struts-config>
      

  12.   

    找到一个解决办法
    用MyEclipse6.0发布的时候 applicationContext.xml在classes目录下
    指定plugin contextConfigLocation的时候value="/WEB-INF/applicationContext.xml" 可以
    value="/WEB-INF/classes/applicationContext.xml"就完蛋了 搞的真郁闷
    asm-2.2.3和hibernate-annotations两个JAR包还要删除 不然还没法用 
      

  13.   

    找到一个解决办法
    用MyEclipse6.0发布的时候 applicationContext.xml在classes目录下
    指定plugin contextConfigLocation的时候value="/WEB-INF/applicationContext.xml" 可以
    value="/WEB-INF/classes/applicationContext.xml"就完蛋了 搞的真郁闷
    asm-2.2.3和hibernate-annotations两个JAR包还要删除 不然还没法用 
      

  14.   

    这种情况是由于Hibernate3.0和3.1  jar包版本的问题,经常出现的,初学时经常碰到
      

  15.   

    applicationContext.xml中的书写可能有误!  加载并未成功
      

  16.   

    tomcat启动的时候没有提示什么错误信息么你先把监听换成这个试试
    <servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
      

  17.   

    我用楼主的所说的配置了一下,通过了,只不过我用的spring2.5而已
    (应该和2.0是一样的,只不过是2.5把包分开了,2.5中的struts支持是在dist\modules\spring-webmvc-struts.jar里)
    我的配置和楼主一样的,如下(这是我自己的例子)
    <action-mappings >
        <action path="/listDocument" scope="request" name="queryDocumentForm" type="org.springframework.web.struts.DelegatingActionProxy">
           <forward name="success" path="/documentList.jsp"></forward>
        </action>
    </action-mappings>
    ........
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
    </plug-in>applicationContext.xml也位于/WEB-INF/classes下,配置如下
    <bean name="/listDocument" class="com.lan.oaapp.web.ListDocumentAction" scope="prototype"></bean>action中我是用注释写的,不过用2.0声明式的注入应该也没有问题
    public class ListDocumentAction extends Action {
        @Autowired
        private DocumentService documentService;
        ....
    }
    以上如果换成2.0的话应该没有问题,因为我的service和持久层用的是anotation所以就没有全改成2.0,希望楼主能配置成功!
    我的web.xml如下配置的
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
      </context-param>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>3</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      

  18.   

    以上大部分配置都copy自楼主在web.xml中楼主要加上
    <context-param>
        <param-name>contextConfigLocation </param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml </param-value>
      </context-param> 才能指定到classpath路径中
      

  19.   

    不同的Eclipse版本 struts、spring的整合在配置文件里有所不同的