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>