`
dashi129
  • 浏览: 37001 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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配置包

分享到:
评论

相关推荐

    Struts2入门教程(全新完整版)

    12.异常处理 18 三、在Action获取Scope对象 19 方式一、与Servlet解耦合的非IOC方式 20 方式二、与Servlet解耦合的IOC方式 21 方式三、与Servlet耦合的非IOC方式 21 方式四、与Servlet耦合的IOC方式 22 四、OGNL与...

    Struts2 学习笔记

    07 声明式异常处理 33 08 国际化 35 一、 国际化资源文件 35 二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-...

    Struts2帮助```````

    07 声明式异常处理 33 08 国际化 35 一、 国际化资源文件 35 二、 Java国际化 35 三、 Struts2国际化 35 1、 Action级别 35 2、 Package级别 36 3、 Application级别 36 四、 资源文件中的参数处理 37 五、 国际化-...

    struts2知识总结.txt

    StrutsJSPXMLJDKTomcat,编译问题,Acion的配置,Result的配置,异常处理,国际化,控制重复提交,类型转换 。

    总结Java的Struts框架的异常处理方法

    主要介绍了Java的Struts框架的异常处理方法,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下

    Java语言基础下载

    Struts如何实现Model 2, MVC 639 Struts 控制流 639 Struts framework的工作原理和组件 642 Struts ActionServlet控制器对象 642 Struts Action Classes 642 搞定Action对象 643 处理异常 643 Action的分类 643 ...

    Spring开发指南

    异常处理 国际化支持 WebWork2 & Spring Quick Start WebWork 高级特性 Action 驱动模式 XWork 拦截器体系 输入校验 国际化支持 Webwork2 in Spring Struts in Spring 数据持久层 事务管理 持久层...

    JSP开发答疑200问配套附书光盘(ISO)

    内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、文件处理与XML技术、数据库连接与访问技术、JSP安全、异常处理与调试发布、Struts专题等内容。所列出的问题均是在经过充分调研的...

    JSP开发答疑200问配套附书光盘(ISO)(二)

    内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、文件处理与XML技术、数据库连接与访问技术、JSP安全、异常处理与调试发布、Struts专题等内容。所列出的问题均是在经过充分调研的...

    达内Java培训项目(当当网/通用电子商务系统)

    技术实现:Struts2、JSP、MySQL、Jquery、Javascript、Ajax 、Json、JUnit 项目描述: 本项目主要实现了用户管理模块、商品分类展示模块、购物车模块、订单模块。 用户管理模块实现了用户注册、实时验证、用户登录...

    专家门诊-JSP开发答疑200问

    本书内容涵盖了搭建开发环境、JSP基础知识、JavaBean高级应用、JSP高级组件、表单验证、文件处理与XML技术、数据库连接与访问技术、JSP安全、异常处理与调试发布、Struts专题等内容。本书所列出的问题均是在经过充分...

    java 面试题 总结

    finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep()...

    Java学习笔记-个人整理的

    {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...

    Spring面试题

    ☆ Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭...

    spring.doc

    不用spring异常通知,另一种处理异常 96 4.2.2.2Aop注解形式(了解) 99 注解注入拓展: 103 5 Spring数据库 106 5.1 Spring+JDBC 106 5.1.1 Jdbc编程特点 106 5.1.2引入DataSource 106 5.1.3 核心类JdbcTemplate ...

    整理后java开发全套达内学习笔记(含练习)

    //此语句会抛异常,需处理 System.out.println("您输入了文字:" + next); }catch(Exception e){} }} 数值保存方式: 正数= 二进制 负数= 补码 补码= 反码 +1 正数=负数的补码(反码+1) 反码= 非(二...

    freemarker总结

    FreeMarker对空值的处理非常严格,FreeMarker的变量必须有值,没有被赋值的变量就会抛出异常,因为FreeMarker未赋值 的变量强制出错可以杜绝很多潜在的错误,如缺失潜在的变量命名,或者其他变量错误.这里所说的空值,...

    ARCH4系统开发指南

    2.28.2 Struts2校验框架应用 71 2.28.2.1 校验配置文件 71 2.28.2.2 角色Insert页面示例 71 2.28.2.3 用户Query页面示例 73 2.28.2.4 多行输入域校验 75 2.29 多语言管理 77 2.29.1 定义输入域的name属性和资源文件 ...

    Spring中文帮助文档

    13.10. 处理异常 13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持:ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap(ModelAndView) 13.11.3. 对视图的...

Global site tag (gtag.js) - Google Analytics