相关疑难解决方法(0)

Primefaces fileUpload和session timout

如果上传了几个非常大的文件,会发生会话超时吗?想象一下,我上传了一个5 GByte的大文件,并设置了短会话超时.流式传输文件时会发生会话超时吗?

jsf servlets file-upload session-timeout primefaces

7
推荐指数
1
解决办法
1064
查看次数

继续使用jsf 2获取javax.faces.application.ViewExpiredException:viewId

无论我做什么,我都会得到javax.faces.application.ViewExpiredException:viewId.我知道如何处理异常(如果我收到错误,再次重定向到主页),问题是我从commandButton调用的任何操作都没有执行.

基本上我有一个带有动作的commandButton的简单视图..我按它并得到viewExpiredException或如果我处理错误,我没有得到错误消息但仍然我的commandButton不起作用.

我尝试添加这个:

 <context-param>
     <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
     <param-value>client</param-value>
 </context-param>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我不知道发生了什么事......

这是我的看法:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    lang="es">
<div class="container">
    <h:form id="principal">
        <h1>Sistema de carga de publicaciones</h1>

        <h:outputText value="Ingrese el año por el que desea buscar publicaciones" />
        <h:inputText
            id="year"
            value="#{publicaciones.año}" />

        <h:commandButton
            style="display:block"
            id="boton-codigo-facultad"
            value="Buscar"
            type="submit">
        </h:commandButton>

        <h:panelGroup id="output">
            <h:outputText
                style="display:block"
                value="Total publicaciones en la DB:#{publicaciones.totalPublicacionesDB}" />
            <h:outputText
                style="display:block"
                value="Publicaciones obtenidas desde el WS:" />
            <h:outputText
                style="display:block"
                value="Publicaciones nuevas:" />
        </h:panelGroup> …
Run Code Online (Sandbox Code Playgroud)

shiro jsf-2 viewexpiredexception commandbutton

6
推荐指数
1
解决办法
2万
查看次数

为什么FullAjaxExceptionHandler不是简单地执行ExternalContext#redirect()?

在OmniFaces中,FullAjaxExceptionHandler在找到要使用的正确错误页面之后,调用JSF运行时来构建视图并呈现它而不是包含AJAX调用的页面.

为什么这个?恕我直言,只是执行一个ExternalContext#redirect()?有没有具体的理由这样做?

我们正在编写基于FullAjaxExceptionHandler的自己的ExceptionHandler,并希望了解这种设计背后的原因.

ajax jsf redirect omnifaces exceptionhandler

6
推荐指数
1
解决办法
1208
查看次数

iframe没有在Chrome中读取Cookie

Chrome不允许儿童iframe阅读自己的Cookie.

我有一个包含子iframe的父网页:

  • 父母在 https://first-site.com
  • 孩子在<iframe src="https://second-site.com">(父母的内部)
  • 饼干设置
    • 路径:'/'
    • 安全:是的
    • httpOnly:false
    • 域名:'.second-site.com'

我控制两个站点,我希望iframe在iframe中执行需要读取cookie的操作.second-site.com.外部父母不需要知道任何关于此的事情.

它适用于除Chrome以外的所有浏览器.

Chrome根本不会让孩子可以使用子页面自己的cookie.

在自己的窗口中访问子页面并执行操作适用于所有浏览器,包括Chrome.

我已经在所有排列中尝试了这两个选项:

  • 设置secure:falsesecure:true用于cookie
  • sandbox="allow-same-origin allow-scripts"为iframe 设置,或删除sandbox属性

什么是Chrome的不同之处,Chrome中的iframe如何访问自己的Cookie?

javascript cookies iframe google-chrome cross-domain

6
推荐指数
1
解决办法
4776
查看次数

升级到jsf2后出现ViewExpiredException

我们最近将主要平台从jsf 1.2升级到2.0.升级后,我们每小时都会收到几个ViewExpiredException错误.通过阅读该主题,似乎这是会话到期时的预期异常,但是我们已经审查了访问日志,即使请求在某些情况下仅相隔5分钟,我们也会收到这些异常.

我的问题如下:

1)除会话到期外,还有哪些其他条件可能导致ViewExpiredException?

2)我们正在记录的异常没有包含导致异常的确切条件的详细信息(缺少会话,损坏会话,无法恢复特定组件).有没有办法引入额外的日志记录来找出在每种情况下触发此异常的非常具体的情况?

Mojarra 2.0.4-b09 Tomcat 6使用Memcached Session Manager进行会话复制

任何帮助表示赞赏.谢谢!

jsf tomcat viewexpiredexception mojarra

5
推荐指数
1
解决办法
4078
查看次数

仅在特定Web浏览器中的WildFly服务的webapp上的ViewExpiredException

我有一个在Wildfly 8.1.0Final上运行的jsf应用程序,只有在谷歌浏览器中,当我点击登录按钮,我收到ViewExpiredException,在其他浏览器中,或在Chrome隐身模式下,工作完美!

有人知道会是什么?

20:29:18,531 INFO  [stdout] (default task-49) 2014-09-16 20:29:18 ERROR context:218 - javax.faces.application.ViewExpiredException: viewId:/login.jsf - A exibição de /login.jsf não pôde ser restaurada.
20:29:18,532 INFO  [stdout] (default task-49)   at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:210)
20:29:18,532 INFO  [stdout] (default task-49)   at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
20:29:18,532 INFO  [stdout] (default task-49)   at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
20:29:18,532 INFO  [stdout] (default task-49)   at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
20:29:18,532 INFO  [stdout] (default task-49)   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
20:29:18,532 INFO  [stdout] (default task-49)   at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
20:29:18,533 INFO  [stdout] (default task-49)   at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
20:29:18,533 INFO  [stdout] (default task-49)   at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) …
Run Code Online (Sandbox Code Playgroud)

session jsf viewexpiredexception wildfly

5
推荐指数
1
解决办法
3409
查看次数

在其他会话中重用ViewState值(CSRF)

我正在使用*myfaces-api-2.2.3并将javax.faces.STATE_SAVING_METHOD设置为client,

我有以下场景,

1)用户X登录系统并添加用户XXX(使用jsf f:ajax操作),同时检查chrome dev工具,您可以看到与ViewState值一起提交的表单.

2)复制ViewState值(来自chrome dev工具 - >网络选项卡) - >将其放入带有表单的html文件中(模仿我原来的添加用户X)

3)从用户X会话注销(会话在该过程中失效)

4)用户Y登录 - > 在浏览器中打开 html文件并点击表单的提交按钮 - >你会注意到添加了用户XXX(尽管表格中使用的ViewState值属于其他用户(用户X).

我认为ViewState的价值不能以这种方式被使用,我认为应该阻止这种行为,怎么就可以使用一个的ViewState在拥有自己的一个全新的会话值ViewState的价值,以及如何能我确保用户不能重用ViewState


请参阅我的另一个问题和BalusC的回答:在客户端状态保存的情况下防止JSF2中的CSRF

viewstate myfaces jsf-2 jsf-2.2

5
推荐指数
1
解决办法
2831
查看次数

如何在JSF 1.2中解决ViewExpiredException

我有一个使用JSF1.2 + Richfaces 3.3.3 Final,MyFaces 1.2.7,Spring + Hibernate的应用程序,当我清除浏览器的缓存和cookie并再次登录我的应用程序时,我每次都得到以下异常.

javax.faces.application.ViewExpiredException - /app/project/index.jsf
找不到视图标识符的已保存视图状态:/app/project/index.jsf

任何人都可以让我知道如何解决上述异常?

jsf viewexpiredexception

4
推荐指数
1
解决办法
1万
查看次数

使用javax.faces.STATE_SAVING_METHOD在客户端上保存会话的含义

我的第一个JSF页面正在抛出javax.faces.application.ViewExpiredException.当我搜索时,我得到了解决我问题的解决方案.

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

但我担心安全隐患.

security viewstate session jsf jsf-2.2

3
推荐指数
1
解决办法
1996
查看次数

JSF视图状态何时到期?

我相信以下是真的

  • 如果javax.faces.STATE_SAVING_METHOD设置为client,则视图永不过期
  • 一个ViewExpiredException将被抛出
    • 如果javax.faces.STATE_SAVING_METHOD设置为server 并且视图状态不可用
    • 会话被销毁时(因为会话中保存的所有视图在逻辑上也会同时过期)
    • com.sun.faces.clientStateTimeout设置一个值(默认为NONE)并且请求之间的时间超过此配置的时间

我不知道

  1. 视图状态不再可用的原因是什么(eexcept会话超时)?
  2. 是否有任何时间值可以配置来控制视图状态超时?

谢谢

相关:

jsf-2 viewexpiredexception

2
推荐指数
1
解决办法
6307
查看次数

关于UI组件状态和阶段的几个问题

经历了这些优秀的帖子:

为什么JSF会在服务器上保存UI组件的状态?

为什么JSF保存组件树状态?

在JavaEE6教程的中途,我仍然有以下问题:

  1. 当我开发一个自定义UI组件,其值(styleClass,value等)是静态定义的(在xhtml中)或通过bean设置时,我是否还需要在扩展组件中显式保存/恢复状态?
  2. 说UI组件的范围是视图作用域是否正确?
  3. 视图如何识别行为?(如果我离开视图,视图将在下一次重建.但是如果我打开另一个选项卡,它将被恢复 - 至少是bean!)
  4. 当我执行Ajax调用时,我希望UI组件的"执行"部分将被恢复和处理,并且"渲染"部分将被恢复和更新.在遇到UI的一些问题之后:重复,不清楚组件树的恢复范围以及是否可以部分编辑.作为一个例子(我不确定它是这样工作的):我定义了一个UI:重复迭代某些值并创建一些Ajax命令链接.每当我调用该命令时,无论我定义的Ajax范围(执行/渲染)如何,它都将恢复整个ui:repeat.所以它将重新渲染整个ui:重复.此外,我不明白它是如何永远不能恢复ui:repeat因为它是一个命名容器,它将编辑我新添加的组件的id.
  5. 如何定义构建时组件(vs渲染时)以及为什么要这样做?(与渲染时混合似乎构建时间组件很麻烦,为什么两者都有)

谢谢

jsf jsf-2

0
推荐指数
1
解决办法
1268
查看次数