常见异常精Word格式.docx
- 文档编号:16211911
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:15
- 大小:22.72KB
常见异常精Word格式.docx
《常见异常精Word格式.docx》由会员分享,可在线阅读,更多相关《常见异常精Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
1.javax.servlet.ServletException:
Errorapplyingdecorator:
null
解决方案:
经过调试发现是FreeMarkerPageFilter的getLocale方法没有对invocation添加非空判断造成的,错误代码如下:
1.
protectedLocalegetLocale(ActionInvocationinvocation,Configurationconfiguration){
2.
if(invocation.getAction()instanceofLocaleProvider){
3.
return((LocaleProvider)invocation.getAction()).getLocale();
4.
}else{
5.
returnconfiguration.getLocale();
6.
}
7.}
改正后的代码如下:
1.protectedLocalegetLocale(ActionInvocationinvocation,Configurationconfiguration){
if(invocation!
=null&
&
invocation.getAction()instanceofLocaleProvider){
7.}
问题描述:
使用Struts2.0.6+Sitemesh2.2.3,我有一个请求/customer/page.action,其结果页面为WEB-INF/jsp/customer/list.jsp,我希望使用main装饰器对返回结果进行装饰,如果配置如下:
xml代码
1.<
decoratorname="
main"
page="
main.ftl"
>
2.<
pattern>
/WEB-INF/jsp/customer/list.jsppattern>
3.decorator>
则无法成功进行装饰,如果配置如下:
/*pattern>
则可以成功进行装饰。
解决方案:
经过调试发现,原来装饰器是根据请求的URI路径匹配需要装饰的页面的,而且此URI路径是相对于上下文路径的,因此针对上述需求正确的配置如下:
/customer/page.actionpattern>
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-
/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core-2.1.2.jar!
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>
<
/HEAD>
中没有使用<
s:
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<
sx:
(Temp1:
<
datetimepickername="
picker"
/>
Temp2:
datetimepickertype="
time"
name="
br/>
Temp3:
datetimepickervalue="
%{'
2008-06-08'
}"
Temp4:
date"
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"
tiles-definitions>
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.<
init>
(FileUploadBase.java:
914)2008-5-2717:
51mons.CommonsLoggerwarn
警告:
Couldnotfindproperty[struts.valueStack]
2008-5-2717:
51mons.CommonsLoggererror
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》即拦截类型成功了
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[struts]
07mons.CommonsLoggerinfo
信息:
Removingfilefiledata\tmp\upload__5b01657_11a329d4dcf__8000_00000000.tmp
原因及解决办法:
在该文件上传Action中只配置了FileUploadInterceptor后缺少配置了defaultStack拦截器.
在ACTION中配置玩defaultStack拦截器后改错误消失。
9---struts.properties中全局配置文件大小,再使用默认FileUploadInterceptor拦截器时候能实现拦截的功能但是后台出现异常。
therequestwasrejectedbecauseitssize(380)exceedstheconfiguredmaximum(10)
914)
未知。
将全局配置中的限制大小去掉,再重新在ACTION中覆盖配置FileUploadInterceptor拦截器设置大小和文件类型限制,可消除异常。
10---多文件上传中,其中一个传被限制的文件如限制aplication/msword(即.doc)文件,答应传文本文件。
然而当夹杂在一起传的时候,后台能截获类型错误不可传信息,但是
实际却还是上传成功。
upload_4d958287_11a33e76ab9__8000_00000007.tmp"
application/msword
fileis:
\tmp\upload_4d958287_11a33e76ab9__8000_00000006.tmp
fileName:
project.txt
fileType:
text/plain
\tmp\upload_4d958287_11a33e76ab9__8000_00000007.tmp
applicationbase.doc
application/msword
\tmp\upload_4d958287_11a33e76ab9__8000_00000008.tmp
zhongqi-bug.txt
忘记了继续ActionSupport类。
继续后异常消失。
11--文件上传异常,不能创建File文件
Cannotcreatetypeclassjava.io.FilefromvalueC:
\DocumentsandSettings\admin\桌面\OrderReporterServiceImp.java-[unknownlocation]
忘记了在form表单里将enctype设置成文件上传格式:
enctype="
multipart/form-data"
12--当使用限制文件类型和大小的时候抛出空指针异常
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
Noresulttypespecifiedforresultnamed'
error'
perhapstheparentpackagedoesnotspecifytheresulttype?
-result-file:
atcom.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:
609)
忘记了继续包struts-default
15--strutsaction配置文件注重事项:
1.别忘记了继续struts-default默认配置包
2.假如配置命名空间,一定要以"
/"
开始,例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 异常