急:ssh框架问题

jinqiang50000 2009-07-23 10:56:30
我项目先前只用了spring+hibernate,现在需要加入struts,我用eclipse导入struts,在struts-config.xml中加入 <controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
用来和spring管理搭配

问题:当struts-config.xml加入这代码 启动不报错,访问action报下面的错
java.lang.IllegalStateException: Could not find ContextLoaderPlugIn's WebApplicationContext as ServletContext attribute [org.springframework.web.struts.ContextLoaderPlugIn.CONTEXT.]: Did you register [org.springframework.web.struts.ContextLoaderPlugIn]?

如果struts-config.xml中不加入上面的代码不报错,可以访问action,但是就不能用spring的管理了,必须在aciton里面new对象

想知道什么原因,是否是什么包被覆盖了或没有导入?
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuwei521999 2010-08-24
  • 打赏
  • 举报
回复
救命啊:SSH实习项目

这是我的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>
<form-bean name="cusomterForm" type="actionForm.CusomterForm" />
<form-bean name="productionForm"
type="actionForm.ProductionForm" />
<form-bean name="orderForm" type="actionForm.OrderForm" />
</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/cusomterAction" name="cusomterForm"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="method" />
<action path="/productionAction" name="productionForm"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="method" />
<action path="/orderAction" name="orderForm"
type="org.springframework.web.struts.DelegatingActionProxy"
parameter="method" />
</action-mappings>
<message-resources
parameter="com.yourcompany.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
</plug-in>
</struts-config>


下面的是我的Web.xml配置文件~~~~~~~~
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>

<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</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>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.spring.XFireSpringServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml,/WEB-INF/xfire-servlet.xml
</param-value>
</context-param>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>

使用Tomcat6.0服务器运行正常,但是用浏览器进行数据库登录等一系列操作就报一下错误........
严重: Servlet.service() for servlet action threw exception
java.lang.IllegalStateException: Could not find ContextLoaderPlugIn's WebApplicationContext as ServletContext attribute [org.springframework.web.struts.ContextLoaderPlugIn.CONTEXT.]: Did you register [org.springframework.web.struts.ContextLoaderPlugIn]?
at org.springframework.web.struts.DelegatingActionUtils.getRequiredWebApplicationContext(DelegatingActionUtils.java:96)
at org.springframework.web.struts.DelegatingActionProxy.getWebApplicationContext(DelegatingActionProxy.java:138)
at org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:120)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:866)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:716)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1498)
at java.lang.Thread.run(Unknown Source)
2010-8-24 22:58:51 org.apache.catalina.core.StandardWrapperValve invoke


请大家帮帮处理一下错误!谢谢
Alex_20 2009-07-23
  • 打赏
  • 举报
回复
Struts和Spring整合一共有三种方式,具体请参考下面链接的文章。
http://www.ibm.com/developerworks/cn/java/j-sr2.html
Johnson_Hong 2009-07-23
  • 打赏
  • 举报
回复
加上<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
Johnson_Hong 2009-07-23
  • 打赏
  • 举报
回复
加上就可以了
<controller>
<set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"/>
legend_jhz 2009-07-23
  • 打赏
  • 举报
回复
应该这样写:

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
tanqimin 2009-07-23
  • 打赏
  • 举报
回复
在web.xml中加入:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
<!-- spring配置文件的路径 -->
/WEB-INF/config/applicationContext.xml
</param-value>
</context-param>

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧