ADF-JMeter错误:“ViewExpiredException。由于不活动,您的会话已超时且不再有效。 “

时间:2014-02-28 06:20:04

标签: jmeter oracle-adf

我正在使用Apache JMeter 2.10来记录部署在WebLogic Server版本10.3.6上的ADF应用程序。我们的应用程序是使用JDeveloper版本11.1.2.4开发的。我们在应用程序的某些位置调用任务流作为弹出窗口。在运行记录的JMeter脚本时,执行失败,在HTTP请求的响应数据中给出ViewExpiredException(下面给出了异常详细信息)。这是因为'javax.faces.ViewState'的值在遇到任务流时发生了变化。请帮助我在录制JMeter脚本时如何解决这个问题。

ADF_FACES-30107:页面的视图状态已过期。重新加载页面。 at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:726) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:349) 在oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:202) 在javax.faces.webapp.FacesServlet.service(FacesServlet.java:508) 在weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run(StubSecurityHelper.java:227) 在weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 在weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) 在weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

3 个答案:

答案 0 :(得分:0)

这称为关联,您需要从每个请求中提取ViewState并将其添加到下一个请求以匹配页面状态级别更改。

为了实现这一目标,您需要为每个请求添加Regular Expression Extractor后处理器

使用ReferenceName,即jsfViewState

正则表达式

<input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="(.+?)" />

模板$1$

对于之前的请求。

并确保您为下一个请求传递以下参数:

javax.faces.ViewState=${jsfViewState}

希望这会有所帮助。

答案 1 :(得分:0)

对我来说,在web.xml中添加以下行就可以了:

<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
<param-value>true</param-value>
</context-param>

答案 2 :(得分:0)

线程组 - &gt;添加 - &gt; ConfigElement - &gt; HTTPCookieRequest并在每次迭代时启用Clear cookies。下面是HttpCookiemanager的图片,您可以将其作为参考。

enter image description here