type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available. 即时我修改 
<action 
      path="/userLogin" 
      scope="request" 
      type="org.springframework.web.struts.DelegatingActionProxy" 
      validate="false"> 
      <forward name="success" path="/index.jsp" /> 
</action> 
也没有作用,我的问题出在哪呢? 
并且/WEB-INF/applicationContext.xml中我已经引入了bean 
<bean name="/userLogin" class="com.yourcompany.struts.action.UserloginAction" singleton="false" />  
谢谢 

解决方案 »

  1.   

    value/WEB-INF/applicationContext.xml"这里是不是写错了,交由Spring来管理action时.你的action没有设置成代理模式.你上面写的action完全没有错的.可能是配置文件没有被加载或加载错误造成的.
      

  2.   

           <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
      </plug-in>
    上面拷贝的出现错误,还有我确信路径没有错误,感谢楼上我查过很多是由于jar包引起的错误,
    可这怎么查啊
      

  3.   

    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
        <set-property property="contextConfigLocation" value/WEB-INF/applicationContext.xml" /> 
      </plug-in> 
    楼主是不是,上面红色的部分没有贴对啊,估计是web.xml没有被完全解析,导致servlet没有被发布到容器中,所以,访问的时候报404的错误。
    楼主把 错误页面的错误信息贴出来看看。
      

  4.   

    <servlet> 
    <servlet-name>contextLoader</servlet-name> 
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 
      

  5.   

    换掉
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
    <set-property property="contextConfigLocation" value/WEB-INF/applicationContext.xml" /> 
    </plug-in> 
    在web.xml中配置!
      

  6.   

    struts-config.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>  <data-sources />
      <form-beans />
      <global-exceptions />
      <global-forwards />
      <action-mappings >
      <action
          path="/userLogin"
          scope="request"
          type="org.springframework.web.struts.DelegatingActionProxy"
          validate="false">
          <forward name="success" path="/index.jsp" />
    </action>
       </action-mappings>  
         <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
           <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
      </plug-in>
      </struts-config>application.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
    <beans>
    <bean id="datasource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
    value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
    </property>
    <property name="url"
    value="jdbc:microsoft:sqlserver://192.168.10.250:1433;DatabaseName=test1">
    </property>
    <property name="username" value="sa"></property>
    <property name="password" value="sa"></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.SQLServerDialect
    </prop>
    <prop key="connection.characterEncoding">utf8</prop>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
    </props>
    </property>
            <property name="mappingDirectoryLocations">
               <list >
                <value>src/test</value>
               </list>
            </property>
    </bean>

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
          <property name="sessionFactory">
           <ref bean="SessionFactory"/>
          </property>
          <property name="allowCreate">
            <value>true</value>
          </property>
        </bean>
        
        <bean id="testDAO" class="test.C2DAO">
          <property name="hibernateTemplate">
            <ref bean="hibernateTemplate"/>
          </property>
        </bean>
        
      <bean name="/userLogin" class="com.yourcompany.struts.action.UserloginAction" singleton="false" />   </beans>
    提示的错误就是上面的404错误,也就是当我访问
    http://localhost:8080/WebRoot/userLogin.do时
      

  7.   

    web.xml里要有application.xml的配置
    [align=left] <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/classes/applicationContext.xml
    </param-value>
    </context-param>[/align]
      

  8.   

    我看过以上的写法,可是如果我在struts中加入了plug,就没有必要修改web.xml了啊,
    可看一下http://blog.csdn.net/gwt600/archive/2006/11/13/1381953.aspx
      

  9.   

    jsp页面是不是这样写的:<form action="userLogin.do">
    </form>
      

  10.   

    我想知道大家都是怎么写的啊,help,
    解决我会加分的
      

  11.   

    你的struts配置文件里的action要做修改,改成spring的代理.
     <action 
          path="/userLogin" 
          scope="request" 
          type="org.springframework.web.struts.DelegatingActionProxy"      validate="false"> 
          <forward name="success" path="/index.jsp" /> 
    </action> 
      

  12.   

     你需要在web.xml添加一个listener
      <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/applicationContext.xml</param-value>
      </context-param>
      <listener>
        <listener-class>
              org.springframework.web.context.ContextLoaderListener
        </listener-class>
      </listener>
      

  13.   

    以上方法都试过了
    只要设置了     
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> 
        <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> 
      </plug-in> 
    就会产生404错误,恼了~~~~
    谢谢大家帮帮忙啦,
    可以把你们的配置文件(简单例子)帖出来看看呀
      

  14.   

    404错误,说明你加载的页面没有在web服务里注册成功
      

  15.   

    察看一下Tomcat的日志文件, 这个应该在系统初始化时就遇到了错误。日志里面一般会说的很明白。有时候Spring的jar会遇到问题, 比如有重复的类文件。
      

  16.   


    如:
    <form action="userLogin.do"> 
    </form>在Spring 配制文件中要有userLogin 的Bean声名
      

  17.   

    在Strtus里加入控制器
    <controller
    processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
    </controller>在Web.xml加入
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/classes/applicationContext.xml
    </param-value>
    </context-param>
    <!--加入监听器-->
    <servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>
    org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>applicationContext.xml
    <bean name="/userLogin" class="com.yourcompany.struts.action.UserloginAction" singleton="false" >  
       <property name="xxxxxx">
            <ref bean="xxxxxx"/>
       </property>
    </bean>
    你是引用了,也被加载了,但没有被实例化!404错误就更好解决,就是找不到页面.
    确实你所访问页面被WEB所加载了没?
      

  18.   

    这个是读spring的配置文件的方法
      

  19.   

    检查你的jsp页面把,看看action是否写对,是存多了/之类的东西
      

  20.   

    这里有一个spring+struts例子
    http://blog.csdn.net/hurricane88/archive/2006/03/26/638682.aspx
      

  21.   

    2008-6-13 15:48:59 org.apache.catalina.core.StandardWrapperValve invoke
    信息: Servlet action is currently unavailable
    2008-6-13 15:49:22 org.apache.catalina.core.ApplicationContext log
    信息: Closing WebApplicationContext of Struts ActionServlet 'action', module ''
    2008-6-13 15:52:43 org.apache.catalina.core.ApplicationContext log
    信息: Marking servlet action as unavailable
    2008-6-13 15:52:43 org.apache.catalina.core.StandardContext loadOnStartup
    严重: Servlet /WebRoot threw load() exception
    javax.servlet.UnavailableException: org/springframework/context/ApplicationContextException
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:368)
    at javax.servlet.GenericServlet.init(GenericServlet.java:211)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4044)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    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:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    2008-6-13 15:52:46 org.apache.catalina.core.ApplicationContext log
    信息: Initializing WebApplicationContext for Struts ActionServlet 'action', module ''
    2008-6-13 15:53:21 org.apache.catalina.core.StandardWrapperValve invoke
    信息: Servlet action is currently unavailable
    2008-6-13 15:53:22 org.apache.catalina.core.ApplicationContext log
    信息: Closing WebApplicationContext of Struts ActionServlet 'action', module ''
    我看了日志,请问这是什么错误?
      

  22.   

    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value/WEB-INF/applicationContext.xml" />
      </plug-in>这个要防在配置文件的最后
      

  23.   

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
    <beans> 
    <bean id="datasource" 
    class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" 
    value="com.microsoft.jdbc.sqlserver.SQLServerDriver"> 
    </property> 
    <property name="url" 
    value="jdbc:microsoft:sqlserver://192.168.10.250:1433;DatabaseName=test1"> 
    </property> 
    <property name="username" value="sa"> </property> 
    <property name="password" value="sa"> </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.SQLServerDialect 
    </prop> 
    <prop key="connection.characterEncoding">utf8 </prop> 
                    <prop key="hibernate.show_sql">true </prop> 
                    <prop key="hibernate.hbm2ddl.auto">update </prop> 
    </props> 
    </property> 
            <property name="mappingDirectoryLocations"> 
              <list > 
                <value>src/test </value> 
              </list> 
            </property> 
    </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> 
          <property name="sessionFactory"> 
          <ref bean="SessionFactory"/> 
          </property> 
          <property name="allowCreate"> 
            <value>true </value> 
          </property> 
        </bean> 
        
        <bean id="testDAO" class="test.C2DAO"> 
          <property name="hibernateTemplate"> 
            <ref bean="hibernateTemplate"/> 
          </property> 
        </bean> 
    <bean name="/userLogin"
    class="com.yourcompany.struts.action.UserloginAction"
    singleton="false">
    <property name="testDAO">
    <ref bean="testDAO"/>
    </property>
    </bean>
    </beans> 
    ============================struts=======================
    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config>   <data-sources /> 
      <form-beans /> 
      <global-exceptions /> 
      <global-forwards /> 
      <action-mappings > 
      <action 
          path="/userLogin" 
          scope="request" 
          type="org.springframework.web.struts.DelegatingActionProxy">
          validate="false"> 
          <forward name="success" path="/index.jsp" /> 
    </action> 
      </action-mappings>  
        <message-resources parameter="com.yourcompany.struts.ApplicationResources" /> 
    <plug-in
    className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
    </plug-in>
      </struts-config> 最后别记你的web.xml要加载struts-config.xml
      

  24.   

    如果上面的问题,看试下这个
    application.xml <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
    <beans> 
    <bean id="datasource" 
    class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" 
    value="com.microsoft.jdbc.sqlserver.SQLServerDriver"> 
    </property> 
    <property name="url" 
    value="jdbc:microsoft:sqlserver://192.168.10.250:1433;DatabaseName=test1"> 
    </property> 
    <property name="username" value="sa"> </property> 
    <property name="password" value="sa"> </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.SQLServerDialect 
    </prop> 
    <prop key="connection.characterEncoding">utf8 </prop> 
                    <prop key="hibernate.show_sql">true </prop> 
                    <prop key="hibernate.hbm2ddl.auto">update </prop> 
    </props> 
    </property> 
            <property name="mappingDirectoryLocations"> 
              <list > 
                <value>src/test </value> 
              </list> 
            </property> 
    </bean> <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
     <property name="allowCreate"> 
            <value>true </value> 
           </property> 
    </bean>
        <bean id="testDAO" class="test.C2DAO"> 
          <property name="transactionManager"> 
            <ref bean="transactionManager"/> 
          </property> 
        </bean> 
    <bean name="/userLogin"
    class="com.yourcompany.struts.action.UserloginAction"
    singleton="false">
    <property name="testDAO">
    <ref bean="testDAO"/>
    </property>
    </bean>
    </beans> 另外楼主要看web容器启动时有没有报错,是不是在启动都实例化了sessionFactory,transactionManager,testDAO这些BEAN,
    如果这都没有问题楼主就要检查其它地方了
      

  25.   

    <property name="allowCreate"> 
            <value>true </value> 
          </property> 不知楼主这个属性是起到什么作用
      

  26.   

    感谢M_song ,在他指点下重新做了一遍,搞定了,
    谢谢,j2ee版块的大家都很热情