﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Natural-随笔分类-Struts</title><link>http://www.blogjava.net/Man/category/41112.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 16 May 2010 13:01:10 GMT</lastBuildDate><pubDate>Sun, 16 May 2010 13:01:10 GMT</pubDate><ttl>60</ttl><item><title>自己遇到的struts错误[不定期更新]</title><link>http://www.blogjava.net/Man/archive/2010/05/10/320482.html</link><dc:creator>此号已被删</dc:creator><author>此号已被删</author><pubDate>Mon, 10 May 2010 07:49:00 GMT</pubDate><guid>http://www.blogjava.net/Man/archive/2010/05/10/320482.html</guid><wfw:comment>http://www.blogjava.net/Man/comments/320482.html</wfw:comment><comments>http://www.blogjava.net/Man/archive/2010/05/10/320482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Man/comments/commentRss/320482.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Man/services/trackbacks/320482.html</trackback:ping><description><![CDATA[1、<span style="background-color: yellow;">javax.servlet.ServletException: BeanUtils.populate</span>[2010-05-10]<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">type&nbsp;Exception&nbsp;report<br />
<br />
message<br />
<br />
description&nbsp;The&nbsp;server&nbsp;encountered&nbsp;an&nbsp;internal&nbsp;error&nbsp;()&nbsp;that&nbsp;prevented&nbsp;it&nbsp;from&nbsp;fulfilling&nbsp;this&nbsp;request.<br />
<br />
exception<br />
<br />
javax.servlet.ServletException:&nbsp;BeanUtils.populate<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;com.company.filter.RequestCharacterEncodingFilter.doFilter(Unknown&nbsp;Source)<br />
<br />
root&nbsp;cause<br />
<br />
java.lang.IllegalArgumentException:&nbsp;argument&nbsp;type&nbsp;mismatch<br />
&nbsp;&nbsp;&nbsp;&nbsp;sun.reflect.NativeMethodAccessorImpl.invoke0(Native&nbsp;Method)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
&nbsp;&nbsp;&nbsp;&nbsp;sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
&nbsp;&nbsp;&nbsp;&nbsp;java.lang.reflect.Method.invoke(Method.java:324)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;com.company.filter.RequestCharacterEncodingFilter.doFilter(Unknown&nbsp;Source)<br />
<br />
note&nbsp;The&nbsp;full&nbsp;stack&nbsp;trace&nbsp;of&nbsp;the&nbsp;root&nbsp;cause&nbsp;is&nbsp;available&nbsp;in&nbsp;the&nbsp;Apache&nbsp;Tomcat/5.0.28&nbsp;logs.</span></div>
问题原因：类型匹配异常。<br />
<br />
比较常见的一种情况：时间属性string 和date的拷贝；<br />
还有一种情况：form的某个属性关联了对象，此时该属性名不能作为action提交时的参数名。<br />
例：<br />
这是配置文件；<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">action&nbsp;</span><span style="color: rgb(255, 0, 0);">path</span><span style="color: rgb(0, 0, 255);">="/myAction"</span><span style="color: rgb(255, 0, 0);">&nbsp;type</span><span style="color: rgb(0, 0, 255);">="com.actions.MyAction"</span><span style="color: rgb(255, 0, 0);">&nbsp;scope</span><span style="color: rgb(0, 0, 255);">="request"</span><span style="color: rgb(255, 0, 0);">&nbsp;name</span><span style="color: rgb(0, 0, 255);">="myForm"</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
<span style="background-color: rgb(19, 210, 31);">如果myForm中的某个属性为Object abc；（即多对一等方式关联了某个对象），</span><br />
<span style="background-color: rgb(19, 210, 31);">此时访问了&#8220;/myAction.do?abc=某值&#8221;会出现这个异常</span>。<br />
<br />
<br />
2、<span style="background-color: yellow;">org.apache.jasper.JasperException: Null property value for 'bmid'</span>[2010-05-11]<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">HTTP&nbsp;Status&nbsp;500&nbsp;-<br />
<br />
type&nbsp;Exception&nbsp;report<br />
<br />
message<br />
<br />
description&nbsp;The&nbsp;server&nbsp;encountered&nbsp;an&nbsp;internal&nbsp;error&nbsp;()&nbsp;that&nbsp;prevented&nbsp;it&nbsp;from&nbsp;fulfilling&nbsp;this&nbsp;request.<br />
<br />
exception<br />
<br />
org.apache.jasper.JasperException:&nbsp;Null&nbsp;property&nbsp;value&nbsp;for&nbsp;'bmid'<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;com.company.filter.RequestCharacterEncodingFilter.doFilter(Unknown&nbsp;Source)<br />
<br />
root&nbsp;cause<br />
<br />
java.lang.IllegalArgumentException:&nbsp;Null&nbsp;property&nbsp;value&nbsp;for&nbsp;'bmid'<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:755)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.beanutils.BeanUtils.getArrayProperty(BeanUtils.java:529)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.taglib.html.SelectTag.calculateMatchValues(SelectTag.java:309)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.taglib.html.SelectTag.doStartTag(SelectTag.java:244)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jsp.person.xfxw.xfxwreceive_005fnew_jsp._jspx_meth_html_select_0(xfxwreceive_005fnew_jsp.java:178)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jsp.person.xfxw.xfxwreceive_005fnew_jsp._jspService(xfxwreceive_005fnew_jsp.java:115)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)<br />
&nbsp;&nbsp;&nbsp;&nbsp;org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:689)<br />
&nbsp;&nbsp;&nbsp;&nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<br />
&nbsp;&nbsp;&nbsp;&nbsp;com.company.filter.RequestCharacterEncodingFilter.doFilter(Unknown&nbsp;Source)<br />
<br />
note&nbsp;The&nbsp;full&nbsp;stack&nbsp;trace&nbsp;of&nbsp;the&nbsp;root&nbsp;cause&nbsp;is&nbsp;available&nbsp;in&nbsp;the&nbsp;Apache&nbsp;Tomcat/5.0.28&nbsp;logs.<br />
Apache&nbsp;Tomcat/5.0.28</span></div>
问题原因：<span style="background-color: yellow;"><span style="background-color: rgb(19, 210, 31);">jsp所使用html标</span><span style="background-color: rgb(19, 210, 31);">签的属性是formBean中的一个对象，但在formBean的构造方法中没有初始化</span></span>。<br />
<br />
例：<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">html:select&nbsp;</span><span style="color: rgb(255, 0, 0);">property</span><span style="color: rgb(0, 0, 255);">="bmid.id"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(0, 0, 255);"><br />
&lt;</span><span style="color: rgb(128, 0, 0);">html:optionsCollection&nbsp;</span><span style="color: rgb(255, 0, 0);">name</span><span style="color: rgb(0, 0, 255);">="bmidList"</span><span style="color: rgb(255, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">html:select</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
对应的formBean中的构造方法没有对bmid对象进行初始化。<br />
<br />
<img src ="http://www.blogjava.net/Man/aggbug/320482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Man/" target="_blank">此号已被删</a> 2010-05-10 15:49 <a href="http://www.blogjava.net/Man/archive/2010/05/10/320482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>