Struts的配置

1. 一个大小写的问题

下午首次触碰了Struts,碰到了一个问题,只要是Strus的配置一加上去,就会报异常:

Error during context [/Struts2qs] restart

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Struts2qs]]

Caused

by: java.lang.IllegalArgumentException: Filter mapping specifies an unknown filter name Struts2

   原因:

<?xml version="1.0" encoding="utf-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<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>

</web-app>

   原因非常简单:注意下划线的两个标注,首字母的大小写不一致。这一点也说明了:filter-mapping节点其实是对filter节点的说明

2. 无法找到FilterDispatcher

上面的问题调好之后,网站依然不能访问,后来在tomcat的log里面的"localhost.2013-05-22.log“文件中找到了端倪,发现了一个异常:Exception starting filter struts2

java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher(这个异常是在Tomcat启动时即发现出来的)。

在tomcat的安装目录下面的lib文件夹中添加了Strus2的相关Jar包文件即可:

common-fileupload.jar

common-io.jar

commons-logging-X.jar

commons-lang3-3.1

freemarker-X.jar

ognl-X.jar

strus2-core-X.jar

x-work-core-X.jar

javassist-3.11.0.GA

网传这是因为使用了绿色Tomcat的原因,更有的人认为是因为Tomcat的安装路径有了空格造成的(Program File)。

不过后来通过虚拟目录配置的工程,如果在Tomcat的lib有jar包,在工程里面的lib中也有相同的jar包,也会报错。所以如果是部署在别的地方,是不需要向Tomcat的lib中扔jar包的。

3.无法加载strus.xml文件

需要在XML头行声明和根节点之间添加DTD声明才可以。

<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<package name="strutsqs" extends="struts-default">

  <action name="Login" class="lee.LoginAction">

    <result name="error">/error.jsp</result>

    <result name="success">/welcome.jsp</result>

  </action>

</package>

</struts>

你可能感兴趣的:(struts)