`
ssxxjjii
  • 浏览: 951077 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 异常处理总结

阅读更多

struts2 异常处理总结

 

1---:java.lang.NoClassDefFoundError: org/apache/struts2/dojo/views/jsp/ui/HeadTag

解决办法:原因缺少了dojo的JAR包,引入即可:struts2-dojo-plugin-2.1.2.jar

(

The "head" tag renders required JavaScript code to configure Dojo and is required in order to use any of the tags included in the Dojo plugin.

--------------------

If you are planning to nest tags from the Dojo plugin, make sure you set parseContent="false", otherwise each request made by the inner tags will be performed twice. 

)

2---:Unable to load configuration. - bean - jar:file:/F:/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core-       2.1.2.jar!/struts-default.xml:46:178

       Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest -       bean - jar:file:/F:/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:46:178

       Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext 
       解决办法:缺少JAR包,引入commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar即可

 

3---:No tag "datetimepicker" defined in tag library imported with prefix "s"

       原因版本问题:缺少struts-dojo-plugin JAR包,以及HTML的,<HEAD></HEAD>中没有使用<s:head/>标签

         If you're using Struts 2.1.x you're probably missing the> struts-dojo-plugin.  Michaël's reference below applies to Struts 2.1.xonly. In the lasts versions (since 2.0.9 I guess), all AJAX are in dojo> plugin.
> > So you need to include <%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
> > and <sx:head/>
> >( Temp1:
   <sx:datetimepicker name="picker" />
   Temp2:
   <sx:datetimepicker type="time" name="picker" /><br/>
   Temp3:
   <sx:datetimepicker value="%{'2008-06-08'}" name="picker" />
   Temp4:
   <sx:datetimepicker value="date" name="picker" />)
> > and call  :<sx:datetimepicker .../>

 

4---:使用TILES框架     

    If you use the Tiles 2 plugin, check your tiles.xml file(s) to ensure they contain a DOCTYPE.

    <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
     "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
    <tiles-definitions>
5---:struts2中不支持EL表达式 Convert EL expressions to OGNL  
    Struts2.1 tags do not allow evaluation of JSP EL within their attributes. 
    Instead, Struts2 tags evaluate attribute values as OGNL. Allowing both 
    expression languages within the same attribute opens major security 
    vulnerabilities. 
6---文件上传过程中取不到文件名和文件类型,即都取到NULL
    原因:如果页面中file的name=“a”则我们ACTION中设置String aContentType,String aFileName;(此两个其实无所谓,关键是SET方法)
    setA(File file)(){}; setAContentType(String s){};setAFileName(String name){} 即格式如下:setXContentType() setXFileName().X代表你给FILE取的NAME名字
    必须和它相同,固定格式
7---严重: Unable to parse request
    org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (8523356) exceeds the configured maximum (2097152)
     at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:914)2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
    警告: Could not find property [struts.valueStack]
    2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
    严重: the request was rejected because its size (8523356) exceeds the configured maximum (2097152)
    2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
    警告: Could not find property [org.apache.catalina.jsp_file]
 原因:上传文件大小超过预定大小,可以在struts.properties配置文件中设置struts.multipart.maxSize=XXX(XXX为文件大小)
 8---配置了文件类型限制后,当传错误类型可以拦截不让用户上传该文件,可是跳转的页面却没有跳转到input配置的错误页面,而是返回
    到了success正确页面。
    严重: Content-Type not allowed: filedata "upload__5b01657_11a329d4dcf__8000_00000000.tmp" text/plain
    《我的打印输出DEBUG语句内容:File:null  FlieName:null      type:null》即拦截类型成功了
    java.lang.NullPointerException
     at java.io.FileInputStream.<init>(FileInputStream.java:103)
     at com.study.web.util.FileUploadUtil.uploadFile(FileUploadUtil.java:36)
     at com.study.web.action.UploadFileAction.execute(UploadFileAction.java:58)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)。。。
    2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
    警告: Could not find property [org.apache.catalina.jsp_file]
    2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
    警告: Could not find property [struts]
    2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
    信息: Removing file filedata \tmp\upload__5b01657_11a329d4dcf__8000_00000000.tmp
    原因及解决办法:在该文件上传Action中只配置了FileUploadInterceptor后缺少配置了defaultStack拦截器.
    在ACTION中配置玩defaultStack拦截器后改错误消失。
9---struts.properties中全局配置文件大小,再使用默认FileUploadInterceptor拦截器时候能实现拦截的功能但是后台出现异常。
    严重: Unable to parse request
    org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (380) exceeds the configured maximum (10)
     at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:914)
原因:未知。将全局配置中的限制大小去掉,再重新在ACTION中覆盖配置FileUploadInterceptor拦截器设置大小和文件类型限制,可消除异常。
10---多文件上传中,其中一个传被限制的文件如限制aplication/msword(即.doc)文件,允许传文本文件。然而当夹杂在一起传的时候,后台能截获类型错误不可传信息,但是
    实际却还是上传成功。
严重: Content-Type not allowed: filedata "upload_4d958287_11a33e76ab9__8000_00000007.tmp" application/msword
file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000006.tmp  fileName:project.txt  fileType:text/plain
file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000007.tmp  fileName:application base.doc  fileType:application/msword
file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000008.tmp  fileName:zhongqi-bug.txt  fileType:text/plain
原因:忘记了继承ActionSupport类。继承后异常消失。
11--文件上传异常,不能创建File文件
    Cannot create type class java.io.File from value C:\Documents and Settings\admin\桌面\OrderReporterServiceImp.java - [unknown location]
    原因:忘记了在form表单里将enctype设置成文件上传格式:enctype="multipart/form-data"
12--当使用限制文件类型和大小的时候抛出空指针异常
    java.lang.NullPointerException
	demo.struts2.action.ValidatFileUploadAction.execute(ValidatFileUploadAction.java:71)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    原因:在ACTION中配置了fileUpload拦截器后忘记了配置默认拦截器:defautlStack。注意当ACTION中配置自己的拦截器后需要显示配置默认
        拦截器defaultStack
13--在国际化时候抛空指针异常:

     16:31:12,812 ERROR [jsp]:253 - Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException  at java.text.MessageFormat.applyPattern(MessageFormat.java:414)

     at java.text.MessageFormat.<init>(MessageFormat.java:350)
     at com.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:70)

     

     原因:忘记了在struts.xml中配置国际化常量,或者在struts.properties中配置全局国际化常量 struts.custom.i18n.resources=globeMessage

 

14-- struts action的配置文件加载失败:

    Unable to load configuration. - result - file:/D:/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:10:26

     Caused by: No result type specified for result named 'error', perhaps the parent package does not specify the result type? - result - file:/D:/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:10:26
     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:609)

 

     原因:忘记了继承包struts-default

15-- struts action 配置文件注意事项:

     1. 别忘记了继承struts-default默认配置包

     2.如果配置命名空间,一定要以"/"开始,例如:namespace="/test"

     3.每个模块struts action配置文件中都可以配置全局result,global-result 经测试不会冲突,STRTUS会智能寻找该Action请求的

       模块STRUTS ACTION配置包

分享到:
评论
2 楼 scplove 2012-04-01  
scplove 写道

1 楼 scplove 2012-04-01  

相关推荐

    Struts1异常处理

    总结起来,Struts1的异常处理机制通过Action类内的捕获、`Struts-config.xml`配置以及Interceptor实现,确保了应用程序的健壮性和用户友好性。在维护和升级Struts1项目时,理解这些机制对于问题定位和修复至关重要。

    struts2总结项目总结

    1. Struts2提供了一套完善的异常处理机制,通过全局异常映射(Global Exception Mapping)可以捕获并处理各类运行时异常。 2. 自定义错误页面和错误处理策略,提高用户体验。 六、Struts2的安全性 1. 虽然Struts2...

    Struts2知识点总结

    以上是对Struts2框架基础知识点的总结,实际开发中还需要了解更多的高级特性,如自定义拦截器、动态方法调用、文件上传下载、异常处理策略等。通过这些知识,新手可以快速上手并熟练掌握Struts2框架的使用。

    struts2学习笔记总结

    通过使用拦截器,Struts2能够提供诸如输入验证、异常处理等服务。 二、MVC模式 MVC模式是软件设计的经典模式,用于分离业务逻辑、数据和用户界面。在Struts2中,Model通常由业务对象(BO)或数据访问对象(DAO)...

    Struts2输入校验总结

    2. **异常处理与错误封装**:如果类型转换过程中遇到问题,如无法正确转换数据类型,会抛出异常。这些异常会被捕获并封装到`fieldError`对象中,存储在`ActionContext`中,以便后续的拦截器处理。 3. **反射调用...

    基于Struts的异常处理

    总结一下,基于Struts的异常处理机制: 1. 定义自定义异常类,如`AppException`,包含错误代码和参数,方便处理和展示错误信息。 2. 创建自定义异常处理器,如`AppExceptionHandler`,继承自Struts提供的`...

    Struts2初步使用总结

    ### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...

    struts1.x 异常处理机制

    总结来说,Struts1.x的异常处理机制包括全局异常配置和自定义Action异常处理两部分。通过合理利用这两种方式,开发者可以有效地控制和管理应用程序的异常,提供更健壮的错误处理,提高系统的稳定性和用户体验。在...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2输入校验总结

    2. **异常处理**: - 在转换过程中如果出现异常,Struts2会将异常信息存储在`ActionContext`中,`conversionError`拦截器会将这些异常封装到`FieldError`对象中。 3. **反射调用校验方法**: - 通过反射调用`...

    struts常见异常及处理

    以上总结了 Struts 框架开发过程中常见的异常及其处理方法。针对每种异常,都给出了详细的解释与解决步骤。开发者可以根据实际情况选择合适的解决方案来解决问题。需要注意的是,在排查异常时,应结合异常的具体信息...

    struts2学习总结

    9. **异常处理和国际化**: Struts2提供了强大的异常处理机制,可以全局配置异常处理器,同时支持多语言,使应用更具国际化特性。 10. **插件系统**: Struts2拥有丰富的插件体系,支持各种功能扩展,如Spring集成、...

    Struts2轻松入门,Struts2总结

    4. **异常处理**:Struts1.x的异常处理不够直观,而Struts2提供了全局异常处理和自定义异常处理策略。 5. **扩展性**:Struts2通过拦截器实现了更好的扩展性,方便添加新的功能或修改现有行为。 6. **视图技术**:...

    struts2大总结

    在错误处理方面,Struts2的异常处理机制使得开发者可以优雅地处理程序中的错误,通过配置全局或特定Action的异常映射,可以将不同类型的异常导向不同的结果页面,提供友好的用户反馈。 对于初学者而言,理解Struts2...

    精通Struts2(最新总结)

    1. 异常处理机制:Struts2允许定义全局或特定Action的异常处理策略,提高程序的健壮性。 十、Struts2与其他技术的集成 1. Spring集成:Struts2可以无缝集成Spring框架,实现依赖注入和事务管理。 2. Hibernate集成...

    struts2的学习总结

    通过配置文件,开发者可以定义全局或特定Action的异常处理策略,同时,可以实现多语言支持,提高应用的可扩展性。 总的来说,Struts2以其灵活的配置、强大的功能和优秀的社区支持,成为许多Java Web开发者首选的...

    struts2高级部分

    通过以上的介绍可以看出,Struts2框架中的异常处理机制非常灵活且强大,不仅支持开发模式下的详细错误信息记录,还提供了丰富的异常映射配置选项,使得开发者可以根据不同的需求定制异常处理逻辑。这对于提升应用...

    Struts1和Struts2区别

    - **Struts2**:提供了更强大的异常处理机制,可以定义全局和Action级别的异常映射,更易管理。 6. 数据校验: - **Struts1**:使用ActionForm中的Validate方法进行客户端或服务器端校验,需要编写大量重复代码。...

    struts2核心技术整理

    Struts2的全局异常处理机制允许开发者定义全局的错误页面或Action,统一处理应用中抛出的异常。这通常通过`&lt;global-exception-mappings&gt;`和`&lt;global-results&gt;`配置实现。 六、插件体系 Struts2拥有丰富的插件系统...

Global site tag (gtag.js) - Google Analytics