为什么有时不调用我的f:ajax Listener?

为什么有时不调用我的f:ajax Listener?,ajax,jsf-2,liferay,portlet,Ajax,Jsf 2,Liferay,Portlet,我有一个jsf页面,其中有一个链接,用于使用Ajax调用搜索。使用javascript自动单击该链接。该表单位于liferay中portlet的多个实例中。通常情况下,一切都很好,但有时,听众没有接到电话 在portlet中(我添加了在第一次编辑中丢失的绑定属性): 我可以看到我自己的调试跟踪doSearch,名为。但有时,在重新加载页面后,我看不到我的跟踪,侦听器从未被调用。我总是有检测到的Ajax ResourceRequest跟踪,但是在调用应用程序之前和调用应用程序之后没有任何区别 如果

我有一个jsf页面,其中有一个链接,用于使用Ajax调用搜索。使用javascript自动单击该链接。该表单位于liferay中portlet的多个实例中。通常情况下,一切都很好,但有时,听众没有接到电话

在portlet中(我添加了在第一次编辑中丢失的绑定属性):

我可以看到我自己的调试跟踪doSearch,名为。但有时,在重新加载页面后,我看不到我的跟踪,侦听器从未被调用。我总是有检测到的Ajax ResourceRequest跟踪,但是在调用应用程序之前和调用应用程序之后没有任何区别

如果我想让页面再次工作,我必须重新加载它。好像在某些加载过程中有时会发生错误,因为只有在重新加载页面后,行为才能更改

我试图用doSearch更改bean的范围(从viewScope到sessionScope),我试图为f:ajax设置immediate=“true”,我试图使用a4j:ajax,但我仍然有我不理解的相同行为。。。为什么?(

编辑:

关于信息,使用findbugs,我看到了ajax请求。在工作情况下,要呈现的字段有更新,而在非工作情况下,部分响应几乎为空:

<partial-response>
  <changes>
    <update id="javax.faces.ViewState">6791417547372597471:4319149946307207422</update>
  </changes>
</partial-response>

6791417547372597471:4319149946307207422

您是否有一个
在另一个
中?这通常是视图操作中行为不一致的原因。我只有一个
,主要是
h:outputText
。会话/视图不是刚刚过期吗?默认情况下,它在30分钟不活动后过期,默认情况下,ajax请求没有例外n处理程序,并在异常情况下完全没有反馈(正是这种视图状态发生变化的部分响应)。但是,您应该在服务器日志中看到一个
ViewExpiredException
。您是否想过读取服务器日志?另请参见@BalusC,这不是会话过期。登录后我可能会很快出现问题。一旦出现问题,如果重新加载页面(使用会话中的数据,因此会话仍然正常),它可以再次工作.您是通过ajax还是普通请求登录的?应该通过普通请求登录,或者至少在登录后执行重定向。
12:55:10,476 DEBUG AFTER phaseId=[RESTORE_VIEW 1] viewId=[/views/search_result.xhtml]
12:55:10,476 DEBUG BEFORE phaseId=[APPLY_REQUEST_VALUES 2] viewId=[/views/search_result.xhtml]
12:55:10,476 DEBUG AFTER phaseId=[APPLY_REQUEST_VALUES 2] viewId=[/views/search_result.xhtml]
12:55:10,476 DEBUG BEFORE phaseId=[PROCESS_VALIDATIONS 3] viewId=[/views/search_result.xhtml]
12:55:10,476 DEBUG AFTER phaseId=[PROCESS_VALIDATIONS 3] viewId=[/views/search_result.xhtml]
12:55:10,486 DEBUG BEFORE phaseId=[UPDATE_MODEL_VALUES 4] viewId=[/views/search_result.xhtml]
12:55:10,486 DEBUG AFTER phaseId=[UPDATE_MODEL_VALUES 4] viewId=[/views/search_result.xhtml]
12:55:10,486 DEBUG BEFORE phaseId=[INVOKE_APPLICATION 5] viewId=[/views/search_result.xhtml]
12:55:10,486 DEBUG doSearch called
12:55:10,486 DEBUG AFTER phaseId=[INVOKE_APPLICATION 5] viewId=[/views/search_result.xhtml]
12:55:10,486 DEBUG BEFORE phaseId=[RENDER_RESPONSE 6] viewId=[/views/search_result.xhtml]
12:55:10,496 DEBUG AFTER phaseId=[RENDER_RESPONSE 6] viewId=[/views/search_result.xhtml]
<partial-response>
  <changes>
    <update id="javax.faces.ViewState">6791417547372597471:4319149946307207422</update>
  </changes>
</partial-response>