Tomcat5和Tomcat6的区别
其实Tomcat5和Tomcat6的区别还是很大的,但我就说其中一小方面
?
就拿一个配置错误来说吧:
如果在struts.xml中如下配置:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <include file="struts-default.xml"/> <package name="lee" extends="struts-default"> <interceptors> <!-- 配置方法过滤的拦截器 --> <interceptor name="myMethodFilter" class="com.lee.action.LoginAction"> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> <!-- 拦截器一般配置在result元素之后! --> <interceptor-ref name="defaultStack"/> <interceptor-ref name="mySimpleInterceptor"> <!-- 重新指定name属性的属性值 --> <param name="name">改名后的方法过滤拦截器</param> <!-- 指定execute方法不需要被拦截 --> <param name="excludeMethods">execute,hello</param> </interceptor-ref> </action> </package></struts>
?
?
用tomcat5加载该项目,控制台输出如下信息:
写道2010-4-30 11:30:59 org.apache.catalina.core.StandardContext start严重: Error filterStart
2010-4-30 11:30:59 org.apache.catalina.core.StandardContext start
严重: Context [/lee_struts2] startup failed due to previous errors
2010-4-30 11:30:59 org.apache.catalina.core.ApplicationContext log
?
而如果用tomcat6加载项目,控制台输出如下信息:
写道2010-4-30 11:32:40 org.apache.catalina.core.StandardContext filterStart严重: Exception starting filter struts2
Unable to find interceptor class referenced by ref-name mySimpleInterceptor - interceptor-ref - file:/F:/apache-tomcat-6.0.18/webapps/lee_struts2/WEB-INF/classes/struts.xml:20:51
at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:50)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:905)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildInterceptorList(XmlConfigurationProvider.java:499)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:343)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:205)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
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)
2010-4-30 11:32:40 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2010-4-30 11:32:40 org.apache.catalina.core.StandardContext start
严重: Context [/lee_struts2] startup failed due to previous errors
?
此时我们可以方便的查到是哪里写错了。。。
出现这种错误的原因是拦截器引用<interceptor-ref name="mySimpleInterceptor">没有声明