struts.devMode=false引发的请求不响应问题

struts.devMode=false引发的请求不响应问题

如题,近日遇到非常有意思的问题,在一个功能页面,通过ajax发送请求到服务器端,服务器端获取请求之后,经过后台处理返回一个带有数据的jsp页面,结果出现了状况,功能页面始终停留在那里不动也不刷新该刷新的区域。
于是开始找问题:
将ajax请求的URL路径和参数,经过拼装后,放入到IE地址栏进行测试。
经过测试发现,该URL地址有效,后台能获取到URL传递的参数,也能执行程序处理,并且后台服务端程序无异常抛出。
但是问题也来了,放在地址栏中的URL请求返回的结果确是HTTP404 错误,无法获取到该请求的页面。
晕了,这可不合理呀,明明URL和参数都没错,为什么不返回页面呢?
于是换了一下URL中的参数值为另一个有效的参数,但该参数,从数据库中查不到数据,也就是说无数据的参数,但程序不会有问题,结果神了,查不到数据的参数确能从后台获取返回的jsp页面,只是页面的列表中无数据而已,但只少说明功能没有错误呀,有请求就有响应呀。
到底是什么原因,导制有数据的参数传到后台后执行没有异常但就是不返回jsp页面,抛http404错误。
而无数据的参数传到后台一样不抛错,确又能返回jsp页面。不得不说,我被这个问题给难住了。
经过不断努力的测试与分析,以及代码中插入println打印语句调试,发现了有意思的事,有数据的参数传到后台struts2的action中对应的控制方法中时,该方法中有调用业务层多个业务方法进行程序处理,我在每个业务层的方法中都加入一句println打印语句,就是想跟踪一下到底是那个方法没执行完还是怎么回事,结果发现,程序执行完到第三个业务层方法之后,就没有在控制台打印println中定义的语句,也就是说程序执行了一半的业务方法,结果就停止不执行了。
这可有意思了,我同样试了试实际无数据的参数,结果能够完整的打印。
我询思着,,,一般页面发送的请求,只要路径合法是对的就,程序执行不出错,就能返回响应页面。获取不得页面,除非服务器停了或者请求路径有错。可是我这排出了上面的原因呀。
百思不得其解,程序和请求路径都不出错,那为什么一个请求动作,action中的代码就只执行了一半就停止了,没有响应了。

后来经过不断的调试,偶然间将struts.devMode改成true,改为开发模式,结果发现有数据的参数,传到后台服务端能够返回响应页面了,而且是带有数据的jsp页面。程序代码没有经过任何改动,所有方法中的println打印语句都在控制台中打印出来了。就这样,功能页面没有问题了。

到现在为止我还是没搞明白,程序代码没有出现错误,为什么将struts.devMode的参数由false改成true,一切都能正常执行,这个问题跟开发模式和发布模式的关联在哪里。问题到底出在哪里?我还是没一个完整的概念和思绪,如果那位程序员朋友有遇到类试问题,敬请提出共同讨论,共同学习一下。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值