Seam 异常 PropertyNotFoundException Target Unreachable, identifier resolved to null

我在使用一个表单,保存数据的时候,在填写表单,和保存的时候出现异常 :

PropertyNotFoundException Target Unreachable, identifier resolved to null

这个很奇怪,因为在EL中引用的对像肯定是存在的,而且是对话作用域的,而且每次说不存在的又不是固定的对象。后来在各个edit中切换的快(我的输入域中有A4j supper),就会出这个导常。
后来在Seam in Action中找到了答案,和解决办法:

原因: 在A4j中,ajax请求是乱序到达服务器的,这样会造成,各AJAX请求及AJAX请求和非AJAX请求之间争夺对话的控制权,当多个AJAX请及非AJAX请求同时到达服务器时后到的请求将无法得到对话的控制权只到request超时,这个后到的请求就会抛出这个异常。

解决:为A4j加入eventsQueue 属性,此属性可让A4j请求加入一个对列,以避免发生多个请求同时到达服务器,这样可以解决多个AJAX请及之间争夺对话的控制权的问题,列如:
<a:support event="onblur" reRender="commentField" bypassUpdates="true" ajaxSingle="true" eventsQueue="foo"/> 
对于AJAX请求和非AJAX请求之间争夺对话的控制权的问题,可设置请求超时时间来解决,在Seam中 :
<core:manager concurrent-request-timeout="500" .../>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值