明月松间照 清泉石上流


                                        ——— 兵临城下   猫科动物
posts - 70, comments - 137, trackbacks - 0, articles - 23
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Spring 整合Struts的问题!

Posted on 2006-08-21 23:44 兵临城下 阅读(1440) 评论(11)  编辑  收藏 所属分类: Spring

     问题很简单,就是用Spring 管理struts的action。
      struts-config.xml如下:

      <struts-config>

  <data-sources />
  <form-beans >
    <form-bean name="logonForm" type="com.xcblcx.struts.form.LogonForm">
    <!-- <form-property name="userName" type="java.lang.String"/>
    <form-property name="password" type="java.lang.String"/> -->
    </form-bean>

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="logonForm"
      input="/form/logon.jsp"
      name="logonForm"
      path="/Logon"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy">
      <forward name="logon_sc" path="/success.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.xcblcx.struts.ApplicationResources" />
 
  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
 <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>

spring的配置文件:(相关片段)
<beans>
         ........
       <bean name="/Logon" class="com.xcblcx.struts.action.LogonAction">
              <property name="CSCEDAO">
                  <ref bean="programmerDAOImpl"/>
              </property>
      </bean>
 </bean>
</beans>

注入到action中的programmerDAOImpl没有问题,我已经使用普通应用程序测试过了。
现在问题是,运行logon.jsp点击提交后,tomcat报错:

type Status report

message Servlet LogonAction is not available

description The requested resource (Servlet LogonAction is not available) is not available.

不知道为什么, 还请大家发表意见!
附带问一个问题,关于spring管理action的问题:一种是在Struts的Action中直接调用Spring的Bean;另一种方式是将Struts的Action作为Spring Beans,直接注入所需资源,由Spring进行管理。那种方法更好一点呢?


评论

# re: Spring 整合Struts的问题!  回复  更多评论   

2006-08-22 21:12 by 兵临城下
今天调试出问题的原因了,如果我把下面的代码去掉就没有问题了。
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
看起来好像是环境上下文的问题,plug-in后为什么struts就找不到action了呢?

# re: Spring 整合Struts的问题!  回复  更多评论   

2006-08-22 22:46 by 兵临城下
哈哈哈!问题解决了。
我把环境上下文声明放在了web.xml中:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/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>

为什么放在struts-config.xml中不行,这种方法也是我在网上看到的

# re: Spring 整合Struts的问题!  回复  更多评论   

2006-08-29 02:25 by kangxm
加载的时间不一样!

# re: Spring 整合Struts的问题!  回复  更多评论   

2007-04-28 14:14 by ryan
和你碰到一样的问题了,还是解决不了,痛苦中~~~~~~~

# re: Spring 整合Struts的问题!  回复  更多评论   

2007-04-30 20:59 by 兵临城下
把环境上下文声明放在了web.xml中还是不行吗,我是可以了啊!

# re: Spring 整合Struts的问题![未登录]  回复  更多评论   

2007-08-13 21:04 by dennis
谢谢,用你的方法解决了同样的问题.

奇怪的是,我另一个项目用<plug-in....一点问题都没有.

# re: Spring 整合Struts的问题![未登录]  回复  更多评论   

2007-08-15 17:13 by kaka
我也在痛苦中,这个问题有时候有,有时候又好了。一直找不到原因在哪里

# re: Spring 整合Struts的问题![未登录]  回复  更多评论   

2007-08-15 17:22 by kaka
按照你的方法解决了这个问题。不过不知道问题的原因是什么?可以解答一下吗?谢谢。

# re: Spring 整合Struts的问题![未登录]  回复  更多评论   

2007-08-15 17:22 by kaka
按照你的方法解决了这个问题。不过不知道问题的原因是什么?可以解答一下吗?谢谢。

# re: Spring 整合Struts的问题!  回复  更多评论   

2007-11-06 15:43 by RodimusOCE
我也碰到此问题,我是直接到服务器发布的目录里去看,结果发现applicationContext.xml文件没有在配置的WEB-INF下,然后拷贝了一份,再运行就OK了,出现这种情况可能就是路径问题导致配置文件找不到。。。。。

# re: Spring 整合Struts的问题![未登录]  回复  更多评论   

2007-11-28 16:42 by tony
实际上是因为applicationcontext.xml的路径
myeclipse是放在src下的,发布以后应该到classes下面
但是那个plugin是放在web-inf下

只有注册用户登录后才能发表评论。


网站导航: