tomcat配置,Struts 2.2.1配置到Tomcat时出错

WEB-INF/web.xml:
<?xml version="1.0" encoding="GBK"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!--定义struts 2的FileterDispatcher的Filter--> <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> <welcome-file-list> <welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>
WEB-INF\classes\struts.xml:
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- struts是Struts 2配置文件的根原属 -->
<struts>
<!-- Struts 2的Action必须放在指定的包空间下定义 -->
<package name="com.exercise.action" extends="struts-default">
<!-- 定义login的Action,该Action的实现类为com.exercise.action类 -->
<action name="Login" class="com.exercise.action.LoginAction">
<!-- 定义处理结果和资源之间映射关系。 -->
<result name="input">/Login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
loginAction.java:
package johnson.action;public class loginAction{ private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } //处理用户请求 public String execute() throws Exception{ //账号,密码:scott/tiger时,返回success //否则返回error if(getUsername().equals("scott") && getPassword().equals("tiger")) { return "success"; } else { return "error"; } } }
Struts 2.2.1 导入基本的五个包:
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
ongnl-3.0.jar
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar
结果启动tomcat的时候,报错了:ITPUB个人空间 n'X a0B/u
2010-9-25 15:21:05 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn警告: Could not create JarEntryRevision for [jar:file:/D:/Java/apache-tomcat-6.0.29/webapps/johnson/WEB-INF/lib/struts2-core-2.2.1.jar]!java.lang.NoClassDefFoundError: org/apache/commons/io/output/NullOutputStream at com.opensymphony.xwork2.util.FileManager$JarEntryRevision.build(FileManager.java:307)
从Struts2.1.6开始要再引入两个包类:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
然后引入这两个包,重启tomcat。还是有问题:
2010-9-25 15:31:09 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error严重: Dispatcher initialization failed
然后找到了下面这个帖子:http://topic.csdn.net/u/20100825/22/bc4344a1-9cd9-45a1-a12d-012a9a3e99b5.html
其中有人回帖:
在使用struts-2.2.1时,需要引入javassist-3.7.ga.jar,而这个在struts-2.2.1\lib下是没有的,需要在struts-2.2.1\apps\struts2-blank-2.2.1.war下的lib中找。
然后引入,重启Tomcat,搞定!
另外的一个回帖说:
把ognl-3.0.jar换成ognl-2.6.11.jar这个方式也可以。
使用ognl-3.0.jar还得再搭配javassist-3.7.ga.jar
备注:
web.xml的filter配置得很不规范。。。不建议使用org.apache.struts2.dispatcher.FilterDispatcher了,官方文档建议使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
Tags:  tomcat配置

延伸阅读

最新评论

发表评论