浏览 6731 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-07-15
1、问题描述 一个表单提交页面。页面上的数据都能正常提交,页面逻辑非常简单,就是简单的录入。但经过一段时间后(不定,可能几天,可能1、2周)后,页面就突然无法工作,在表单上填写的任何数据传到后台都是 NULL。不关是当前页面有问题,而且是所有的页面都有问题,都无法提交。 注:在Action中获取表单数据采用的是定义FO封装的形式,在页面上控件的命名是以 fo.name 的形式进行赋值的。 2、页面的简要描述 页面的代码如下(有删节,但不影响问题的描述) <body leftmargin="0" topmargin="0" class="bg_tree_01"> <form name="updform" action="/mymodel/itemupd.action" method="post" > <table width="99%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="17" height="18"><img src="/dutymgt/images/zdpd_3.gif" width="17" height="18"></td> <td background="/dutymgt/images/zdpd_5.gif">&</td> <td width="17" height="18"><img src="/dutymgt/images/zdpd_7.gif" width="17" height="18"></td> </tr> <tr> <td background="/dutymgt/images/zdpd_12.gif">&</td> <td align="left" valign="top" bgcolor="#DCF0FC"> <table width="100%" border="0" cellpadding="2" cellspacing="1" class="tab-bg"> <tr class="tr02"> <td class="tr01_a" align=right width="20%">项目名称 :</td> <td class="tr02" colspan="3" > <input type="text" class="input_01" validlength="80" name="dmJobItem.itemName" value="1212" valid="checknull,checklength" msgobject="项目名称" >&* </td> </tr> <tr class="tr02"> <td class="tr01_a" align=right>项目说明 :</td> <td class="tr02" colspan="3" > <textarea name="dmJobItem.itemDesc" cols="80" rows="3" valid="checklength" msgobject="项目说明">1212</textarea> </td> </tr> <input type="hidden" name="dmJobItem.id" value="3148" > <input type="hidden" name="dmJobItem.roomId" value="jkzys.wgzx.gz.gmcc" > </table> <table width="89%" height="9" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="5"></td> </tr> </table> <table width="100%" border="0" cellspacing="1" cellpadding="2"> <tr> <td align="center"> <input name="save" type="button" class="button_03" value="提 交" onclick="return toadd();;"> & <input name="cancel" type="button" class="button_03" value="返 回" onclick="return goback();;"></td> </tr> </table> </td> <td background="/dutymgt/images/zdpd_14.gif">&</td> </tr> </table> </form> <script language="javascript"> function toadd();{ if(!checkforminput(););{ return false; } formfilter();; document.forms[0].submit();; return true; } function goback();{ window.history.back(-1);; } </script> </body> </html> 从上面的JSP代码段可以看出,所有的隐藏字段都已赋值,所以需要填写的内容也可以确定已经填写。 呵呵,还希望这里走过路过的有缘兄弟给予帮助。是配置问题还是其他?不要只说一句话:到webwork的官方网站上去问。谢谢各位。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-07-15
到webwork的官方网站上去问
也是白搭 弄一个能够重现这个错误的简化版本出来,再去官方网站问...... |
|
返回顶楼 | |
发表时间:2005-07-15
唉,的确很麻烦。因为不是比现的。。而是长时间使用后出现的。
环境:weblogic 8 sp4 oracle9i 还不需要什么压力测试,就10几个测试人员点点。。。点一轮就出现了。出现后,redeploy一下web应用就好了。不采用FO来封装的应用(是另外一个war包,直接在action从request中获取数据),目前还未出现问题。 |
|
返回顶楼 | |
发表时间:2005-07-15
查查parameters interceptor
查查ognl 不能重复那就在关键点输出debug信息,反正都是OpenSource的,源码都有,先定位问题所在吧。 |
|
返回顶楼 | |
发表时间:2005-07-15
把这个应用分别部署到Tomcat和Resin上面测试
此外WebLogic分别采用HotSpot和JRockit JVM重复测试 看看测试结果如何 |
|
返回顶楼 | |
发表时间:2005-07-15
在出现这种情况的时候,写两个简单的jsp来测试一下提交是否也会这样,以判断是WW2的问题还是WLS的问题。
|
|
返回顶楼 | |
发表时间:2005-07-15
我感觉是weblogic 的问题。
bea实现的jsp规范加了些自己东西。 以前我也头疼过。 |
|
返回顶楼 | |
发表时间:2005-07-15
zkj_beyond 写道 我感觉是weblogic 的问题。
bea实现的jsp规范加了些自己东西。 以前我也头疼过。 的确,我无法确定是WLS的问题还是Webwork的问题。但生产环境上的WebLogic部署了很多Web应用。。出问题的Web应用只是其中一个,出问题的Web应用的所有表单的提交后,得到的都是NULL。其他Web应用依然正常使用。出问题的的应用重新部署后都恢复正常了。 由于本机经常调试,经常Redeploy,所以目前急需要在开发环境重现。准备用压力测试工具先轰一把。 另外,研究了一下webwork的代码和日志。发现webwork针对应用服务器是WebLogic的情况,做了一些特殊的处理。。日志见下: [ 2005-七月-15 18:11:18 ] <DEBUG> :: Setting static parameters {} [ 2005-七月-15 18:11:18 ] <DEBUG> :: Setting params weblogic.servlet.internal.Pa ramMap@5f307c 因此,不经过深入研究,目前还不敢完全说是webwork的问题。但至少目前可能从配置上和使用方法上,我的WebLogic和Webwork存在配合上的问题。继续定位中。。。。。 同时,感谢所有回复问题的朋友。。 |
|
返回顶楼 | |
发表时间:2005-07-16
在webwork2.1.7的ServletDispatcher.java的202行开始
// test wether param-access workaround needs to be enabled if (servletConfig.getServletContext();.getServerInfo();.indexOf("WebLogic"); >= 0); { log.info("WebLogic server detected. Enabling parameter access work-around.");; paramsWorkaroundEnabled = true; } else { log.debug("Parameter access work-around disabled.");; } 第232行 if (paramsWorkaroundEnabled); { request.getParameter("foo");; // simply read any parameter (existing or not); to "prime" the request } 似乎是webwork的开发者已经意识到了webwork和weblogic之间的配合问题了。 这里也有一个帖子说这个的。 http://blog.csdn.net/hongbo781202/archive/2005/03/29/333007.aspx |
|
返回顶楼 | |
发表时间:2005-07-18
stephen 写道 在webwork2.1.7的ServletDispatcher.java的202行开始
// test wether param-access workaround needs to be enabled if (servletConfig.getServletContext();.getServerInfo();.indexOf("WebLogic"); >= 0); { log.info("WebLogic server detected. Enabling parameter access work-around.");; paramsWorkaroundEnabled = true; } else { log.debug("Parameter access work-around disabled.");; } 第232行 if (paramsWorkaroundEnabled); { request.getParameter("foo");; // simply read any parameter (existing or not); to "prime" the request } 似乎是webwork的开发者已经意识到了webwork和weblogic之间的配合问题了。 这里也有一个帖子说这个的。 http://blog.csdn.net/hongbo781202/archive/2005/03/29/333007.aspx WebLogic的确没有遵循规范。 webwork在 getParamaterMap 方法中也提到了,并建议针对Application可以复写该方法。 改了一下,再测试一周看看。。 谢谢楼上各位给出的有建设性的建议。 |
|
返回顶楼 | |