`

搭建struts2,解决Tomcat启动时的错误:严重: Error filterStart

    博客分类:
  • SSH
阅读更多

1.  环境:

JDK:   jdk1.6.0_12

注:当安装了多个版本的 jdk 时, 要检查 JAVA_HOME 环境变量,如果 JAVA_HOME 的值与 Eclipse 里编译 java 文件使用的版本不一致时,会出现: java.lang. UnsupportedClassVersionError: Bad version number in .class file 错误,从而导致 tomcat 无法启动。

 

Tomcat:     apache-tomcat-6.0.33

D:\server\apache-tomcat-6.0.33-8080\conf\Catalina\localhost\ROOT.xml 内容如下:

 

<Context path="" docBase="D:\projects2\SSHDemo\war" workDir="" reloadable="false">
</Context>

 

2.  Struts2 必要的 jar

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

freemarker-2.3.18.jar

javassist-3.11.0.GA.jar

ognl-3.0.4.jar

struts2-core-2.3.1.2.jar

xwork-core-2.3.1.2.jar

注: apache 官网上下载的 struts2-blank demo 里的下面三个 jar 包不需要:

asm-3.3.jar

asm-commons-3.3.jar

asm-tree-3.3.jar

用别人开源的东东, jar 包多,多了少了都可能出现各种问题,导致 tomcat 无法启动,经常出现的问题类似下面的问题:

2010-9-26 20:28:25 org.apache.catalina.core.StandardContext start
严重 : Error filterStart


这个时候, tomcat 的控制台可能没有更多的提示,导致不知道哪个包少了或冲突了,网上一查,同问这个问题的人不计其数,解决方法也是千奇百怪。其实当控制台提供的错误信息不足以解决问题时, 可以查看 tomcat log 文件, tomat 提供了 logs 目录(如: D:\server\apache-tomcat-6.0.33-8080\logs ),下面有两个有用的日志文件:

catalina.2012-04-28.log ,这个日志里的内容就是控制台所看到的日志;

localhost.2012-04-28.log ,这个日志里的内容是详细的错误信息,你从上面这个文件里看出具体什么错误的信息就可以从这里查找了。我就是借助这个文件确定了 struts 2.3.1.2 需要哪些 jar 包的。

3.  配置文件 web.xml

 

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 

 

分享到:
评论
2 楼 sf2gis 2015-06-02  
谢谢,解决了。
1 楼 modiliany 2012-04-30  
注:与Spring3.1.0版本集成的话,
如果在web.xml用到了
org.springframework.web.context.ContextLoaderListener监听器这个类,
则要引入
org.springframework.asm-3.1.0.RELEASE.jar
,否则报错:
2012-4-30 1:59:10 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2012-4-30 1:59:10 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor

//错误为没有找到类:org.springframework.asm.ClassVisitor
//这个类在Spring发布的release包里:/dist/org.springframework.asm-3.1.0.RELEASE.jar


注意,struts2发布的release包中的下面三个包是不要的:
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
如果也引入的话,可能会引起类冲突!

相关推荐

Global site tag (gtag.js) - Google Analytics