struts2 布署出现的问题 解决方法

来源:互联网 发布:mac 触摸板 手势 编辑:程序博客网 时间:2024/06/01 16:18

严重: Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils  

http://struts.apache.org/2.x/docs/create-struts-2-web-application-with-artifacts-in-web-inf-lib-and-use-ant-to-build-the-application.html

教程有问题,要加多个包
commons-lang3-3.1.jar

严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

处理方法:
1、核对lib包

commons-fileupload-1.2.1.jar,
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
ognl-3.0.jar
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar)

注意2.1以前是没有commons-fileupload-1.2.1.jar,


2、如果struts2版本是2.1以前

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> 
</web-app> 

如果struts2 版本是2.1以上

web.xml配置

<filter>   
<filter-name>struts2</filter-name>   
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter   
</filter-class>   
</filter>   
<filter-mapping>   
<filter-name>struts2</filter-name>   
<url-pattern>/*</url-pattern>   
</filter-mapping>   
</web-app> 


3、

在使用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中找。


严重: Dispatcher initialization failed
Unable to load configuration. - bean - jar:file:/C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/Struts2Demo01/WEB-INF/lib/struts2-core-2.1.8.jar!/struts-default.xml:47:178
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)

解决办法:

除了
commons-logging-1.0.4.jar
freemarker-2.3.12.jar
ognl-2.6.11.jar
struts2-core-2.1.2.jar
xwork-2.1.1.jar

这五个核心LIB要复制外,
commons-io-1.3.2.jar
commons-fileupload-1.2.1.jar

这两个Jar文件也必须放到指定目录


严重: Document is invalid: no grammar found. at (null:3:8) org.xml.sax.SAXParseException: Document is

struts.xml配置文件内容如下

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

    
<struts>
  <!-- 加入默认的struts2配置文件 -->
  <include file="struts-default.xml" />
  <!-- 继承默认的struts2配置文件,概念与Java继承类似 -->
  <package name="default" extends="struts-default" >
    <!-- 此处hello名称是hello.action的url名字 -->
    <action name="hello" class="controller.HelloAction" >
      <!-- success指向配置 -->
      <result name="success">success.html</result>
    </action>
  </package>
</struts>

 因为在struts.xml文件中缺少了DOCTYPT定义,在文件中加入
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

即可,正确的配置文件如下:

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

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
<struts>
  <!-- 加入默认的struts2配置文件 -->
  <include file="struts-default.xml" />
  <!-- 继承默认的struts2配置文件,概念与Java继承类似 -->
  <package name="default" extends="struts-default" >
    <!-- 此处hello名称是hello.action的url名字 -->
    <action name="hello" class="controller.HelloAction" >
      <!-- success指向配置 -->
      <result name="success">success.html</result>
    </action>
  </package>
</struts>


<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
       "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
出现以下异常在validation.xml中加上面那句,validator_1_1_3.dtd是版本额,commons-validator/org.apache.commons.validator.resources下可以找到相应版本.

错误Caused by: Unable to load file:/D:/apache-tomcat-6.0.18/webapps/hellostruts2/WEB-INF/classes/struts.xml

解决方法:这里的name值写成你struts.xml文件所在那个文件夹     <package name="default" extends="struts-default" >


0 0
原创粉丝点击