|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。BEA利用的是Catalina,也就是tomcat,偶然中发明一个十分潜伏的大概不算致命的BUG,在JSP中某处的标签假如实行毛病,会在后面某处输入缓冲区时无非常加入,而不是在实在毛病地址收回毛病非常。
10:45分:却发明FormTag实行非常加入,并且毛病日记没有任何输入;以是决意转已往先看看是甚么回事。十分奇异的是,就算在doEndTag中输出断点后,毛病日记仍没有输入。最初的反省了局,不是程序有错,而是在某种前提下,tag对output没有呼应,所请求输入的vaildatorscript只输入了一半。
这个tag集成了struts.validator的JavascriptStaticTag,不知有无人如许做:我不想花工夫重建把它的代码剖解出来,也不但愿让前台的页面多几个必要设置的tag;因而间接用下级的FormTag向它置值,然后间接挪用它的doStartTag()——实在,在JSP容器中不也是如许按注册纪录挪用它的办法吗?此前偶而发明有如许的毛病,不外转眼就恢复一般。既然非常消散,毛病日记也没有纪录,也就没法开掘它的毛病来历了。此次从头呈现,引发我的注重,并且毛病延续工夫对照长,因而能够在程序中设置断点,跟踪它的毛病产生的地位。
了局,毛病源会合到了不是我写的,来自于struts的validator的这个标签。关于struts如许的两头构件,我如今的立场是假如我不克不及完看懂它的代码,能够在内里设置断点纪录输入到毛病日记degbug,就不加接纳,以是如今我手中的struts只是有它的构件功效,利用体例与一样平常所见的struts已是完整分歧了,这也包含了这个javascripStaticTag。关于它的用法,我是但愿它作为程序的一部分,当我选定要对某个表单的客户端举行考证时,它主动完成所必须的代码输入,而不必要我手工地设这个TAG,还要婚配它的挪用函数称号。这个集成是乐成的,已运转了很长工夫,常常了必定强度的测试,但弄虚作假,关于个中的代码我还是没有深切。
毛病的发生后我盘算向缓冲区输入断点,这是因为这个程序是向页面输入validator-rules.xml中的javascript代码,但发明没有乐成,很多断点没有输入;标明程序输入是中止的,但输入历程是一般的,不然毛病日记会纪录上去。进一步的考证标明,程序运转和从内存纪录中取得的javascript是完全的,从而扫除了读取xml产生毛病的大概性,并且也证实JAVA程序的运转是完整一般的,毛病不在开辟者程序,而在于平台自己,在输入缓冲区时无非常加入了!!!因为javascriptTag中是利用stringBuffer最初toString再输入到缓冲区,大概,是因为这个量太年夜,以是溢出了??因而我把它分红逐段都输入,但了局完整一样。大概是因为我关于它的挪用不是由容器举行,间接由parent-TAG挪用办法形成缓冲辨别配较小??因而改成getString办法,由parent完成输入,但是,了局仍旧是一样的。
最初,我盘算先超出这一步,看看实行了局怎样,发明该页因为BSelectTag因为调联系关系的BaseIf接口昨晚错删除一个办法呈现非常,因而从头编译后,再实行,了局发明下面的毛病消散了。从头恢复这个毛病,非常从头呈现。如许也就发明了它的缘故原由。现实上,BEA利用的是CATLINAJSP容器,注释一个JSP页面时是一个一致的历程。这个非常标明,在JSP中前后的输入文本天生是相干联的,位于前面的程序运转毛病,象这里,是在前面运转时呈现了methodnofound(我估量,由于即便是服务器日记也没有发明毛病纪录),也令这个注释实行过程当中断,形成缓冲区文本输入一半无非常加入。
我很少处置JSP,这是一个履历,假如呈现这类缓冲非常输入而程序捕获不就任何的毛病日记时,先把这个页面相干的程序都编译一遍,扫除这个大概再说。
这个成绩整整花了我两个小时找缘故原由,切实其实潜伏,一些反作用是如许就对validator.javascript的代码熟习了,项目前面有点工夫的话,就把它修正一下,只输入此次必要的考证办法script:我总以为它输入了太多的工具,把validator_rules.xml中的一切script办法全送出来了。
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 |
|