问题标签 [requestscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

primefaces - “找不到保存的视图状态...”双击注销后

我有一个带有注销按钮的应用程序。双击按钮后,我得到一个ViewExpiredException

我的注销方法具有以下结构:

这里没有记录错误,所以这里似乎一切都按预期工作。

bean 是请求范围的。

我的潜在相关配置web.xml

理想情况下,我想在注销后将用户重定向到门户页面,而不是错误页面。(参见userBean.getPortalUrl()上面的 logout() 方法)

0 投票
1 回答
212 浏览

symfony - Symfony:如何处理常见的请求范围数据

我正在将一个遗留 PHP 项目(前 OO)迁移到 Symfony2。对于每一个请求,我都必须:

  • 计算一些动态数据(取决于当前日期和/或一些请求参数)
  • 在呈现的响应中使用该数据(多次!)。

一种天真的方法是:

  • 在每个控制器方法开始时,调用一些全局辅助函数来计算数据。
  • 在每个控制器方法结束时,将数据作为参数传递给 twig 模板。

听起来很乏味。也许这样做会更好:

  • 为请求事件创建一个订阅者,该订阅者在请求进入时计算数据并通过 getter 方法提供对它的访问。
  • 将该订阅者/服务定义为config.yml.
  • 在 twig 模板中,根据需要调用该服务的 getter 方法。

这可行吗?特别是,树枝变量/服务和订阅者是否总是相同的?或者该服务可能是一个新创建的实例?

这是某种滥用吗?或者这种用例有官方推荐的方法吗?

编辑数据不仅需要在每个树枝模板中,而且在某些控制器中也需要。

0 投票
1 回答
264 浏览

java - spring 如何知道新的请求或会话?

我知道在 Web 应用程序中,对于它收到的每个请求,spring 在 ints 容器中创建一个新的 bean 实例。我想知道 spring 如何区分请求并相应地创建新的 bean 实例?

0 投票
1 回答
521 浏览

java - Spring - 从对象池请求范围 bean

我有一个资源对象池:

目前,我在我的 JAX-RS 端点中使用这个池,如下所示:

}

这工作正常。但是,PooledResource手动请求并被迫不要忘记该finally子句让我感到紧张。我想实现控制器如下:

}

在这里,PooledResource被注入,而不是管理池。这种注入应该是请求范围内的,而且,在请求完成后,资源必须归还给池。这很重要,否则我们最终会耗尽资源。

这在春天可能吗?我一直在玩FactoryBean,但这似乎不支持回馈bean。

0 投票
1 回答
1640 浏览

asp.net - 异步 ASP.NET Web API 中的 ThreadStatic

是否有可能在单个请求中使用线程静态变量?当前代码使用线程静态变量进行日志记录,现在我们想使用异步控制器方法(带有异步和等待模式),这会导致问题,因为当打开新线程时变量为空。

0 投票
1 回答
976 浏览

java - 没有 servlet 的 Guice 请求范围注入(在 RPC 服务器中)

作为背景,我正在 Thrift 服务中处理 RPC 请求(尽管我的问题不是 Thrift 特定的)。我想要的似乎应该很简单,但我找不到示例:如何在不从头开始的情况下重用 com.google.inject.servlet.RequestScoped 绑定?

显然,我可以按照说明创建自定义范围。但这似乎过于复杂。我想做的事情:处理传入(Thrift)RPC时,为每个传入调用创建一个新的RequestContext;然后,在处理它时使用标准的 RequestScoped 注入。

基本上,我的代码看起来应该(松散地)像这样:

0 投票
1 回答
2604 浏览

spring-boot - 如何注入请求范围的bean?

我想将我的请求范围 bean 注入我的另一个 bean。

我尝试将这个bean注入一个JPagebean:

在我尝试过的控制器中:

我有:

无法实例化 [pl.mirage.components.AbstractUiComponent]:它是一个抽象类吗?嵌套异常是 java.lang.InstantiationException

又一次尝试。它不起作用,因为@RestController它是单例 - 您不能将请求范围注入单例范围:

我有:

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“greetingController”的bean时出错:通过字段“jpage”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为 'jpage' 的 bean 时出错:通过字段 'ctx' 表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“uiCtx”的 bean 时出错:范围“请求”对于当前线程无效;如果您打算从单例中引用它,请考虑为该 bean 定义一个作用域代理;嵌套异常是 java.lang.IllegalStateException: No thread-bound request found: 你指的是实际 Web 请求之外的请求属性,或在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,则您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,请使用 RequestContextListener 或 RequestContextFilter 来公开当前请求。

可以通过注释UICtxJPageas来解决此问题@Scope(value = "[..]", proxyMode = ScopedProxyMode.TARGET_CLASS)

它仅在JPage作为控制器字段注入时才有效。JPage当作为方法参数注入时它不起作用。

我该如何注入请求范围的bean?

0 投票
1 回答
178 浏览

java - Guice Request Scope 用于跟踪请求的工作流程

我有一个用例,我在一个请求中执行了 6 个步骤。企业要求我们捕获有关流程中每个步骤的结果的指标。他们希望我们登录到 Kinesis 流。

在架构上,我正在寻找最佳解决方案。我们有基于 java 的服务,我希望随着请求的进行而丰富一个请求范围的对象,然后当端点完成时,我们将使用 fire and forget 模式对 kinesis 进行异步服务调用。这样报告就不会阻碍主线程。

我正在考虑使用原始的 ThreadLocal 或 guice 范围。有没有人遇到过他们解决的类似问题?我正在考虑使用 guice 请求范围组件,这将大大简化代码。只是在寻找一些意见。谢谢!

0 投票
0 回答
125 浏览

ejb - 两个无状态 EJB 可以共享同一个请求范围的实体管理器吗?

我决定使用管理的请求范围容器,EntityManager并为此创建了一个生产者:

我有两个公开远程客户端视图的 EJB:

EJB 部署在 WildFly 10 上。我使用本教程通过远程客户端访问它们。当前版本抛出此异常:org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped. 如果我@RequestScoped从生产者那里删除注释,我不会得到异常,但是当询问它是否包含实体以及我是否希望对实体所做的更改(姓氏的更改)时,EntityManager注入到第二个EJB返回false任何效果,我都必须调用entityManager.merge(person),这显然意味着实体已分离。我确定第二个EJB使用相同的事务执行,因为如果我注入一个EJBContext并调用setRollbackOnly()启动的事务EJB1将回滚,并且不会将新人插入数据库。

的文档javax.enterprise.context.RequestScoped说请求范围在 any 的任何远程方法调用期间都是活动的EJB,那么给出了什么?如何EntityManager在多个请求期间共享一个EJB's

0 投票
1 回答
178 浏览

java - @SessionScoped bean 是否存在并发问题?

显然,很容易让多个并行请求访问 Web 应用程序上下文中的同一个 @SessionScoped bean。我是否正确地认为在这些请求中访问 @SessionScoped bean 时我必须显式控制同步?