[150分求助]spring+struts配置问题,给点建议也好,来者有分!!

bitou 2006-03-10 11:03:24
初学spring,找了些资料跟着配置了项目,布署在Tomcat4.1下,但死活不成功,请各位瞧瞧

首先这是Tomcat报的错误
------------------------------------------------------------------------
2006-3-10 10:31:56 org.apache.commons.modeler.BaseModelMBean invoke
严重: Exception invoking method createStandardContext
java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: Context startup failed due to previous error
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:777)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:793)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:501)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:209)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:123)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:79)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:123)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:123)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:
at mx4j.server.MBeanServerImpl.invoke(MBeanServerImpl.java:1353)
at org.apache.webapp.admin.context.SaveContextAction.perform(SaveContextAction.java:182)
at org.apache.struts.action.Action.execute(Action.java:420)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

----------------------------------------------------------------------------------------
...全文
210 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bitou 2006-03-13
  • 打赏
  • 举报
回复
问题已经解决,谢谢liumyboy() 的提醒让我重新检查了一遍,问题就出在过滤器上,我改过这个类但忘了把它放在类路径下,所以加载的时候就找不到这个类


<filter-name>SetCharacterEncodingFilter</filter-name>
<display-name>SetCharacterEncodingFilter</display-name>
<filter-class>com.gzedu.filters.SetCharacterEncodingFilter</filter-class>
wafer_w 2006-03-11
  • 打赏
  • 举报
回复
同意楼上。
还有,是否是版本问题。
你部署在tomcat5下面试试
liumyboy 2006-03-11
  • 打赏
  • 举报
回复
我得建议是用排除法,比如你的系统是struts和spring集成,那么,可以先排除环境问题,可以这样,先把struts的spring相关的配置,先去掉,比如将struts-config.xml的spring集成的context的plus-in先去掉,然后再将spirng的DelegatingActionProxy类的代理转交回给struts的action类,这样我们就实际变成了一个纯的struts的开发了,如果还有错,那样就是struts的问题了,可以试试看,有问题可以再联络我,我得msn是myboyliu@hotmail.com

zeq258 2006-03-10
  • 打赏
  • 举报
回复
转贴,应该对你有用!

---------------
http://www.3doing.net/forums/dispbbs.asp?boardID=55&ID=1283&page=1
bitou 2006-03-10
  • 打赏
  • 举报
回复
经过eclipse的语法检查,配置文件无语法错误,不知是否配置错误
bitou 2006-03-10
  • 打赏
  • 举报
回复
相关配置文件如下:

web.xml
=====================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>education</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans.xml</param-value>
</context-param>
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<display-name>SetCharacterEncodingFilter</display-name>
<filter-class>com.gzedu.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>InitLog4j</servlet-name>
<servlet-class>com.test.init.Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<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>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tlds/taglib.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/taglib.tld</taglib-location>
</taglib>
</web-app>

-----------------------------------------------------------------------------
struts-config.xml
===============================================================
<?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>
<form-beans>
<form-bean name="TestForm" type="com.gzedu.test.TestForm" />


</form-beans>

<global-forwards>
<forward name="SYSTEM_ERROR" path="/info/errorpage.jsp" />
<forward name="SYSTEM_DEBUG" path="/info/debugpage.jsp" />
<forward name="SYSTEM_WARN" path="/info/warnpage.jsp" />
<forward name="SYSTEM_INFO" path="/info/infopage.jsp" />
<forward name="FORWARD_NULL" path="/info/forwardnull.jsp" />
<forward name="REQUEST_INVALID" path="/info/invalidrequest.jsp" />
</global-forwards>

<action-mappings>
<action path="/test"
type="org.springframework.web.struts.DelegatingActionProxy"
input="/test.do"
validate="true"
name="TestForm" parameter="list">
<forward name="success" path="/test/success.jsp"/>
<forward name="failure" path="/test/failure.jsp"/>
</action>

</action-mappings>

<!-- 消息资源 -->
<message-resources parameter="com.gzedu.resources.ApplicationResources_zh"/>
<!-- comment following if struts1.0.x -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/>
</plug-in>

<!-- end comment if struts1.0.x -->
</struts-config>

--------------------------------------------------------------------------------

beans.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="TestAction" class="com.gzedu.test.TestAction" />
</beans>

bitou 2006-03-10
  • 打赏
  • 举报
回复
我的Tomcat上还跑了其它项目都没有问题啊

我的程序?
在Tomcat的admin中配置项目的时候应该不关程序的事啊,这个时候只跟配置文件相关吧
zeq258 2006-03-10
  • 打赏
  • 举报
回复
我就是这样做的,没有问题呀,

请仔细检查你的程序的运行环境,还有你的程序!
godwu 2006-03-10
  • 打赏
  • 举报
回复
学习,帮顶
梦幻圣者 2006-03-10
  • 打赏
  • 举报
回复
没看到有关spring的错误啊,是不是你的tomcat有问题啊?
悠云guo 2006-03-10
  • 打赏
  • 举报
回复
可以参考spring版的jpetstore,里面有整合struts
这是我自己根据jpetstore写配置,希望对你有用
web.xml
=======
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>corerbac-spring</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml /WEB-INF/dataAccessContext.xml /WEB-INF/struts-bean.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</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>application</param-name>
<param-value>ApplicationResources</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>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core_rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml_rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt_rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/sql_rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
</web-app>

struts-config.xml
=================
<?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>
<form-beans>
<form-bean name="enterActionForm" type="corerbac.presentation.EnterActionForm" />
</form-beans>
<action-mappings>
<action forward="/WEB-INF/jsp/enter.jsp" path="/index" />
<action input="enter.jsp" name="enterActionForm" path="/enterAction" scope="request" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="home" path="/WEB-INF/jsp/home.jsp" />
<forward name="deny" path="/WEB-INF/jsp/deny.jsp" />
<forward name="error" path="/WEB-INF/jsp/error.jsp" />
</action>
<action path="/listuserAction" scope="request" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="deny" path="/WEB-INF/jsp/home.jsp" />
<forward name="list" path="/WEB-INF/jsp/list.jsp" />
</action>
<action path="/userinfoAction" scope="request" type="corerbac.presentation.UserinfoAction">
<forward name="info" path="/WEB-INF/jsp/info.jsp" />
</action>
<action path="/logoutAction" scope="request" type="corerbac.presentation.LogoutAction">
<forward name="logout" path="/WEB-INF/jsp/enter.jsp" />
</action>
<action path="/userroleAction" scope="request" type="corerbac.presentation.UserroleAction">
<forward name="rolelist" path="/WEB-INF/jsp/rolelist.jsp" />
</action>
<action path="/userpermAction" scope="request" type="corerbac.presentation.UserpermAction">
<forward name="permlist" path="/WEB-INF/jsp/permlist.jsp" />
</action>
<action path="/testiteratorAction" scope="request" type="corerbac.presentation.TestiteratorAction">
<forward name="test" path="/test.jsp" />
</action>
<action path="/backtoinfoAction" scope="request" type="corerbac.presentation.BacktoinfoAction">
<forward name="back" path="/WEB-INF/jsp/info.jsp" />
</action>
</action-mappings>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/struts-bean.xml" />
</plug-in>
</struts-config>
bitou 2006-03-10
  • 打赏
  • 举报
回复
回楼上,这篇文章我看了,事实上我正是参照这篇文章来配置的,但在Tomcat下不成功

我的TestAction,基于struts的DispatchAction
-----------------------------------------------------------------------
package com.gzedu.test;

import com.gzedu.base.ActionBase;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;



public class TestAction extends ActionBase {
/**
* 测试
* @param mapping ActionMapping
* @param form ActionForm
* @param request HttpServletRequest
* @param response HttpServletResponse
* @return ActionForward
* @throws Exception
*/
public ActionForward list(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
ActionForward forward = new ActionForward(); // return value
forward = mapping.findForward("success"); //转到列表页面
return (forward);
}

}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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