spring 2.5  struts 1.2web.xml
<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>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext-actionbean.xml</param-value>
  </context-param>
  <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
applicationContext-actionbean.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="text" class="com.test.system.action.TestAction">
</bean></beans>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="/test"
type="org.springframework.web.struts.DelegatingActionProxy" />
</action-mappings>

</struts-config>报错信息
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named '/test' is definedjavax.servlet.ServletException: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named '/test' is defined
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:114)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:280)
at com.caucho.server.port.TcpConnection.handleConnection(TcpConnection.java:563)
at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1122)
at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1069)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    我对你下面3个地方存在疑问, 因为好久没有用过struts了, 所以记得不是很清楚.
    <url-pattern>*.do </url-pattern>既然你的url pattern是*.do, 那controller/action的bean也应该是xxxx.do才对.
    而且貌似下面的名字还写错了. text???
    <bean id="text" class="com.test.system.action.TestAction"> 
    如果你的action是xxxx.do, 就要用name, 而不是id.
    <bean name="test.do" class="com.test.system.action.TestAction"> 
    我只记得spring的部分, struts的我就不好说了. 下面的你看看对不?
    <action-mappings> 
    <action path="/test"  ???
    type="org.springframework.web.struts.DelegatingActionProxy" /> 
    </action-mappings> 
      

  2.   

    <action-mappings> 
    <action path="/test"  ??? 
    type="org.springframework.web.struts.DelegatingActionProxy" /> 
    </action-mappings> 楼主在上面<action>元素中间出现错误,没有指定formBean
    应该改为
    <action-mappings> 
    <action name="text" path="/test" type="org.springframework.web.struts.DelegatingActionProxy" /> 
    </action-mappings> 这样就可以了
      

  3.   

    你是用的Spring 整合struts吧!你没有bean  '/test' 你的Spring里面哪有test这个bean 啊
      

  4.   

    applicationContext-actionbean.xml 中
    <bean id="text" class="com.test.system.action.TestAction"> 
    改为
    <bean id="/text" class="com.test.system.action.TestAction"> 
    就可以了.
      

  5.   

    注意text test
      

  6.   

    No bean named '/test' is defined 
      

  7.   

    <bean name="/test" class="com.test.system.action.TestAction"> 
    可以用了
      

  8.   

    "/test" 根本不让定义。 
      

  9.   

    如果我的bean 里面 '/test' 这样定义的话,运行时错误
      

  10.   

    <bean name="/test" class="com.test.system.action.TestAction">
    应该不会有问题了
      

  11.   

    <?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 />
      <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          path="/test"
         />
      </action-mappings>
         <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
    </struts-config>试试看
      

  12.   

    很明显,struts-config.xml 中缺少
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
       <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
    应在struts-config.xml中配置applicationContext.xml,不知道,我说的对吗??