【问题标题】:ADF-JMeter error : “ViewExpiredException. Because of inactivity, your session has timed out and is no longer active. “ADF-JMeter 错误:“ViewExpiredException。由于不活动,您的会话已超时并且不再处于活动状态。 “
【发布时间】:2014-02-28 06:20:04
【问题描述】:

我正在使用 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:页面的视图状态已过期。重新加载页面。 在 oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:726) 在 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)

【问题讨论】:

    标签: jmeter oracle-adf


    【解决方案1】:

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

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

    使用参考名称,即jsfViewState

    正则表达式

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

    还有模板$1$

    对于上一个请求。

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

    javax.faces.ViewState=${jsfViewState}
    

    希望这会有所帮助。

    【讨论】:

    • 我仍然收到 ViewExpiredException
    • 我正在录制的场景是这样的 - 当我的脚本启动时,它让我们说 ViewState-1,然后在 viw 状态更改为 ViewState-2 之间,之后又是 ViewState-1被恢复。进一步进行,我得到 ViewState-3。在几个样本之后,它再次恢复 ViewState-1 等等。我按照你说的做了,但我仍然面临错误。我还尝试跳过将后处理器添加到 ViewState 更改的地方。但结果相同。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      线程组 --> 添加 --> ConfigElement --> HTTPCookieRequest 并启用每次迭代清除 cookie。下面是HttpCookiemanager的图片,大家可以参考一下。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-26
        • 1970-01-01
        • 2022-01-23
        • 2013-03-13
        • 1970-01-01
        • 2019-09-16
        相关资源
        最近更新 更多