常见异常精.docx

上传人:b****6 文档编号:3306381 上传时间:2022-11-21 格式:DOCX 页数:15 大小:22.72KB
下载 相关 举报
常见异常精.docx_第1页
第1页 / 共15页
常见异常精.docx_第2页
第2页 / 共15页
常见异常精.docx_第3页
第3页 / 共15页
常见异常精.docx_第4页
第4页 / 共15页
常见异常精.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

常见异常精.docx

《常见异常精.docx》由会员分享,可在线阅读,更多相关《常见异常精.docx(15页珍藏版)》请在冰豆网上搜索。

常见异常精.docx

常见异常精

 

提示java.lang.UnsupportedClassVersionError:

Badversionnumberin.classfile

Myeclipse使用的JDK和Tomcat使用的JDK版本不一致

解决方法:

把它们的JDK版本改成一致步骤如下:

1.Window-->Preferences-->Java-->compiler中的compilercompliancelevel对应的下拉菜单中选择JDK版本.

2.Window-->Preferences-->MyEclipse-->Servers-->Tomcat-->Tomcatn.x-->JDK中的TomcatJDKname下的下拉菜单中选择自身电脑上安装的JDK版本

 

1、缺少文件上传JAR包commons-io-1.3.1.jarcommons-fileupload-1.2.jar

Unabletoloadbeanorg.apache.struts2.dispatcher.multipart.MultiPartRequest(jakarta)-[unknownlocation]

这个问题是在使用Struts2想做一个上传文件的页面时候Tomcat报出来的错误,详细信息如下:

2007-7-1921:

34:

09org.apache.catalina.core.StandardWrapperValveinvoke

严重:

Servlet.service()forservletjspthrewexception

java.lang.RuntimeException:

Unabletoloadbeanorg.apache.struts2.dispatcher.multipart.MultiPartRequest(jakarta)-[unknownlocation]

问题描述:

使用Struts2.0.6+Sitemesh2.2.1+Freemark2.3.8的过程中,装饰Action请求的结果页面不会有问题,但是如果装饰直接访问的JSP页面会出现如下错误:

java代码

1.javax.servlet.ServletException:

Errorapplyingdecorator:

null  

       解决方案:

经过调试发现是FreeMarkerPageFilter的getLocale方法没有对invocation添加非空判断造成的,错误代码如下:

java代码

1.  protectedLocalegetLocale(ActionInvocationinvocation,Configurationconfiguration){  

2.        if(invocation.getAction()instanceofLocaleProvider){  

3.            return((LocaleProvider)invocation.getAction()).getLocale();  

4.        }else{  

5.            returnconfiguration.getLocale();  

6.        }  

7.}  

改正后的代码如下:

java代码

1.protectedLocalegetLocale(ActionInvocationinvocation,Configurationconfiguration){  

2.    if(invocation!

=null&&invocation.getAction()instanceofLocaleProvider){  

3.        return((LocaleProvider)invocation.getAction()).getLocale();  

4.    }else{  

5.        returnconfiguration.getLocale();  

6.    }  

7.}  

        问题描述:

使用Struts2.0.6+Sitemesh2.2.3,我有一个请求/customer/page.action,其结果页面为WEB-INF/jsp/customer/list.jsp,我希望使用main装饰器对返回结果进行装饰,如果配置如下:

xml代码

1.  

2./WEB-INF/jsp/customer/list.jsppattern>  

3.decorator>  

则无法成功进行装饰,如果配置如下:

xml代码

1.  

2./*pattern>  

3.decorator>  

则可以成功进行装饰。

       解决方案:

经过调试发现,原来装饰器是根据请求的URI路径匹配需要装饰的页面的,而且此URI路径是相对于上下文路径的,因此针对上述需求正确的配置如下:

xml代码

1.  

2./customer/page.actionpattern>  

3.decorator>  

1---:

java.lang.NoClassDefFoundError:

org/apache/struts2/dojo/views/jsp/ui/HeadTag

解决办法:

原因缺少了dojo的JAR包,引入即可:

struts2-dojo-plugin-2.1.2.jar

The"head"tagrendersrequiredJavaScriptcodetoconfigureDojoandisrequiredinordertouseanyofthetagsincludedintheDojoplugin.

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

IfyouareplanningtonesttagsfromtheDojoplugin,makesureyousetparseContent="false",otherwiseeachrequestmadebytheinnertagswillbeperformedtwice. 

2---:

Unabletoloadconfiguration.- bean- jar:

file:

/F:

/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core-      2.1.2.jar!

/struts-default.xml:

46:

178

       Causedby:

Unabletoloadbean:

type:

org.apache.struts2.dispatcher.multipart.MultiPartRequestclass:

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

       Causedby:

java.lang.NoClassDefFoundError:

org/apache/commons/fileupload/RequestContext 

       解决办法:

缺少JAR包,引入commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar即可

 

3---:

Notag"datetimepicker"definedintaglibraryimportedwithprefix"s"

       原因版本问题:

缺少struts-dojo-pluginJAR包,以及HTML的,中没有使用

head/>标签

         Ifyou'reusingStruts2.1.xyou'reprobably missingthe> struts-dojo-plugin. Michaël'sreferencebelowappliestoStruts2.1.xonly.Inthelastsversions(since2.0.9Iguess),allAJAXareindojo>plugin.

>>Soyouneedto include<%@tagliburi="/struts-dojo-tags"prefix="sx"%>

>>and

head/>

>>(Temp1:

  

datetimepickername="picker"/>

  Temp2:

  

datetimepickertype="time"name="picker"/>

  Temp3:

  

datetimepickervalue="%{'2008-06-08'}"name="picker"/>

  Temp4:

  

datetimepickervalue="date"name="picker"/>)

>>andcall :

datetimepicker.../>

 

4---:

使用TILES框架     

    IfyouusetheTiles2plugin,checkyourtiles.xmlfile(s)toensuretheycontainaDOCTYPE.

    

DOCTYPEtiles-definitionsPUBLIC"-//ApacheSoftwareFoundation//DTDTilesConfiguration2.0//EN"

    "http:

//tiles.apache.org/dtds/tiles-config_2_0.dtd">

    

5---:

struts2中不支持EL表达式ConvertELexpressionstoOGNL 

    Struts2.1tagsdonotallowevaluationofJSPELwithintheirattributes.

    Instead,Struts2tagsevaluateattributevaluesasOGNL.Allowingboth

    expressionlanguageswithinthesameattributeopensmajorsecurity

    vulnerabilities.

6---文件上传过程中取不到文件名和文件类型,即都取到NULL

    原因:

假如页面中file的name=“a”则我们ACTION中设置StringaContentType,StringaFileName;(此两个其实无所谓,要害是SET方法)

    setA(Filefile)(){};setAContentType(Strings){};setAFileName(Stringname){}即格式如下:

setXContentType()setXFileName().X代表你给FILE取的NAME名字

    必须和它相同,固定格式

7---严重:

Unabletoparserequest

    mons.fileupload.FileUploadBase$SizeLimitExceededException:

therequestwasrejectedbecauseitssize(8523356)exceedstheconfiguredmaximum(2097152)

     atmons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:

914)2008-5-2717:

46:

51mons.CommonsLoggerwarn

    警告:

Couldnotfindproperty[struts.valueStack]

    2008-5-2717:

46:

51mons.CommonsLoggererror

    严重:

therequestwasrejectedbecauseitssize(8523356)exceedstheconfiguredmaximum(2097152)

    2008-5-2717:

46:

51mons.CommonsLoggerwarn

    警告:

Couldnotfindproperty[org.apache.catalina.jsp_file]

 原因:

上传文件大小超过预定大小,可以在struts.properties配置文件中设置struts.multipart.maxSize=XXX(XXX为文件大小)

 8---配置了文件类型限制后,当传错误类型可以拦截不让用户上传该文件,可是跳转的页面却没有跳转到input配置的错误页面,而是返回

    到了success正确页面。

    严重:

Content-Typenotallowed:

filedata"upload__5b01657_11a329d4dcf__8000_00000000.tmp"text/plain

    《我的打印输出DEBUG语句内容:

File:

null FlieName:

null     type:

null》即拦截类型成功了

    java.lang.NullPointerException

     atjava.io.FileInputStream.(FileInputStream.java:

103)

     atcom.study.web.util.FileUploadUtil.uploadFile(FileUploadUtil.java:

36)

     atcom.study.web.action.UploadFileAction.execute(UploadFileAction.java:

58)

     atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)。

    2008-5-2910:

59:

07mons.CommonsLoggerwarn

    警告:

Couldnotfindproperty[org.apache.catalina.jsp_file]

    2008-5-2910:

59:

07mons.CommonsLoggerwarn

    警告:

Couldnotfindproperty[struts]

    2008-5-2910:

59:

07mons.CommonsLoggerinfo

    信息:

Removingfilefiledata\tmp\upload__5b01657_11a329d4dcf__8000_00000000.tmp

    原因及解决办法:

在该文件上传Action中只配置了FileUploadInterceptor后缺少配置了defaultStack拦截器.

    在ACTION中配置玩defaultStack拦截器后改错误消失。

9---struts.properties中全局配置文件大小,再使用默认FileUploadInterceptor拦截器时候能实现拦截的功能但是后台出现异常。

    严重:

Unabletoparserequest

    mons.fileupload.FileUploadBase$SizeLimitExceededException:

therequestwasrejectedbecauseitssize(380)exceedstheconfiguredmaximum(10)

     atmons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:

914)

原因:

未知。

将全局配置中的限制大小去掉,再重新在ACTION中覆盖配置FileUploadInterceptor拦截器设置大小和文件类型限制,可消除异常。

10---多文件上传中,其中一个传被限制的文件如限制aplication/msword(即.doc)文件,答应传文本文件。

然而当夹杂在一起传的时候,后台能截获类型错误不可传信息,但是

    实际却还是上传成功。

严重:

Content-Typenotallowed:

filedata"upload_4d958287_11a33e76ab9__8000_00000007.tmp"application/msword

fileis:

\tmp\upload_4d958287_11a33e76ab9__8000_00000006.tmp fileName:

project.txt fileType:

text/plain

fileis:

\tmp\upload_4d958287_11a33e76ab9__8000_00000007.tmp fileName:

applicationbase.doc fileType:

application/msword

fileis:

\tmp\upload_4d958287_11a33e76ab9__8000_00000008.tmp fileName:

zhongqi-bug.txt fileType:

text/plain

原因:

忘记了继续ActionSupport类。

继续后异常消失。

11--文件上传异常,不能创建File文件

    Cannotcreatetypeclassjava.io.FilefromvalueC:

\DocumentsandSettings\admin\桌面\OrderReporterServiceImp.java-[unknownlocation]

    原因:

忘记了在form表单里将enctype设置成文件上传格式:

enctype="multipart/form-data"

12--当使用限制文件类型和大小的时候抛出空指针异常

    java.lang.NullPointerException

demo.struts2.action.ValidatFileUploadAction.execute(ValidatFileUploadAction.java:

71)

sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

    原因:

在ACTION中配置了fileUpload拦截器后忘记了配置默认拦截器:

defautlStack。

注重当ACTION中配置自己的拦截器后需要显示配置默认

        拦截器defaultStack

13--在国际化时候抛空指针异常:

     16:

31:

12,812ERROR[jsp]:

253-Servlet.service()forservletjspthrewexception

    java.lang.NullPointerException atjava.text.MessageFormat.applyPattern(MessageFormat.java:

414)

     atjava.text.MessageFormat.(MessageFormat.java:

350)

     atcom.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:

70)

     

     原因:

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

 

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

    Unabletoloadconfiguration.-result-file:

/D:

/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:

10:

26

     Causedby:

Noresulttypespecifiedforresultnamed'error',perhapstheparentpackagedoesnotspecifytheresulttype?

-result-file:

/D:

/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:

10:

26

     atcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:

609)

 

     原因:

忘记了继续包struts-default

15--strutsaction配置文件注重事项:

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

     2.假如配置命名空间,一定要以"/"开始,例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1