当前位置: 首页 > 知识库问答 >
问题:

如何将字符串MVC会话范围内的Bean自动连接到RestEasy客户端拦截器?

马侯林
2023-03-14

我正在使用基于Spring MVC的前端中使用RestEasy创建的RESTAPI。

有两个WAR项目正在开发中。

  1. RestEasy Spring基于IOC的REST API
  2. Spring MVC Spring IOC RestEasy客户端基于代理的前端

我正在使用RestEasy客户端代理调用rest服务。JAX-RS契约接口在RestEasy API端和Spring MVC应用程序中都是共享的。

在基于Spring MVC Spring IOC RestEasy Client Proxy的项目中,我正在尝试将会话范围的bean自动连接到Spring MVC控制器中定义的RestEasy CareetInterceptor中。

我使用了注释。但我仍然在ClientInterceptor中的自动连线会话范围bean上获得了NPE。。

如何解决这个问题?

共有1个答案

甄正信
2023-03-14

要在单例bean/原型作用域bean中注入会话作用域bean,应使用作用域代理声明会话作用域bean为Spring注入bean代理作为bean的占位符。

会话作用域bean可以声明为作用域代理,

在XML声明中,

 <bean ... scope="session"> 
   <aop:scoped-proxy/> 
 </bean> 

如果您正在使用注释,

@Scope(value="session",proxyMode= ScopedProxyMode.TARGET_CLASS)

代理模式提供有关生成何种类型的代理的信息,基于接口/基于类。

 类似资料:
  • 我在artemis代理中添加了一个mqtt拦截器,以便拦截mqtt客户端连接: 我的客户端apache paho通过这个端口“WS://0.0.0.0:61614”连接到代理。 我的问题是只截获发布到主题的消息。 为什么不截获连接消息?

  • 以下是我的Spring应用程序的相关部分: 上面的方法从未被调用。我需要成为一个Spring bean,因为我需要向它注入其他依赖项。 以下是文件的相关部分:

  • 我编写了一个会话范围的托管bean,用于在domino xpages应用程序中缓存sesion用户特定的信息,如下代码所示: 然后,我在faces配置中声明了它,使其成为会话范围的bean: 在测试bean时,我通过#{NBUser.fullUserName}使用它,它并不总是返回当前domino http会话上下文的用户,例如,我首先由用户“user1”登录并注销,然后由user2登录,bean

  • 问题内容: 我想创建自己的自定义范围bean,它将使用HTTP会话(类似于Flash作用域)。 根据Spring手册,我需要实现org.springframework.beans.factory.config.Scope接口 我的问题是如何在此bean中获取HTTP会话?我知道,如果我在ServletContext范围内创建bean,则将实现ServletContextAware接口。 请帮忙 :

  • 我在创建带有参数的@Bean时遇到问题,这运行得很好,但在intelliJ中,它给出的错误无法自动连线。找不到“String”类型的bean。 我要做什么?我正在尝试创建具有原型作用域的bean,在IntelliJ“无法自动连线。未找到‘String’类型的bean”中出现此错误有谁能帮我解决这个问题吗 这是原型测试的类

  • 问题内容: 我有一个User类: 和一个控制器类: 我使会话无效,以便下次我进入/ users时,我得到另一个用户。由于用户的会话范围,我期望使用其他用户,但是我得到的是同一用户。我在调试模式下进行了检查,它与内存中的对象ID是相同的。我的bean声明为: 我是春季新手,所以我显然做错了什么。我希望每个会话有一个User实例。怎么样? 问题答案: 这是预期的行为。当标记带有代理的bean时,将为其