在 JAX-RS Provider 中使用 @Context 向 CDI bean 提供上下文信息

2023-12-24

我有一些网络服务(JAX-RS、WildFly 9、Resteasy)

@RequestScoped
public class SomeService{
// operations
}

现在我想提取上下文信息,例如用户代理,这可以使用

@Context
private HttpHeaders httpHeaders;

似乎只能在 JAX-RS 相关类中注入此上下文,但不能在 Web 服务调用的 CDI bean 中注入。可以将其放入 Web 服务中,但这会使服务与与服务的核心响应无关的内容变得混乱。

经过一番搜索后,我最终使用了javax.ws.rs.ext.Provider注解。看来生产出来的ContextInformation然后,对象可以在其他 CDI-bean 中使用,而不仅仅是在 JAX-RS bean 中。

@Provider
public class ContextInformationProducer {
    @Produces
    @RequestScoped
    public ContextInformation create() {
        ContextInformation contextInformation = new ContextInformation();
        contextInformation.setBrowserUserAgent(httpHeaders.getHeaderString("User-Agent"));
    }

问题是这是否是好的做法?或者这只是巧合?如果这不是好的做法,我怎样才能以更好的方式做到这一点? 看完之后JAX-RS 中的 Provider 是什么意思? https://stackoverflow.com/questions/13557442/what-does-provider-in-jax-rs-mean,我不确定我是否在“扩展和定制 JAX-RS 运行时”。应用程序开发人员应该使用它吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JAX-RS Provider 中使用 @Context 向 CDI bean 提供上下文信息 的相关文章

  • Java Try Catch Final 没有 Catch 的情况下会阻塞

    我正在审查一些新代码 该程序只有一个 try 和一个 finally 块 既然排除了 catch 块 那么如果 try 块遇到异常或任何可抛出的内容 它如何工作 它直接进入finally块吗 如果 try 块中的任何代码可以引发已检查异常
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • JSON 到 hashmap (杰克逊)

    我想将 JSON 转换为 HashMapJackson http jackson codehaus org 这是我的 JSON String json Opleidingen name Bijz trajecten zorg en welz
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 启动Java项目时发生类冲突:ClassMetadataReadingVisitor将接口org.springframework.asm.ClassVisitor作为超类

    我正在使用最新的Spring框架版本 3 2 2 RELEASE 开发一个Java Web项目 但是现在项目启动时遇到了问题 详细错误是 java lang IncompleteClassChangeError 类 org springfr

随机推荐

  • 如何获取Android相机预览数据?

    我的相机应用程序在屏幕上显示相机预览 并在后台处理它 这是相关代码 尽可能精简 例如 没有显示错误处理或字段声明 public final class CameraView extends SurfaceView implements Su
  • 将列表框数据保存为 XML?

    我有 2 个列表框 第一个列表框存储每个项目对象属性的数据指针 由我编写的自定义类定义 每当我从此列表框中选择一个项目时 我都会通过访问第一个列表框中存储的一些数据来填充第二个列表框 一切都很好 但现在我需要知道如何将列表框保存和恢复为 X
  • 如何使用FastAPI将视频帧和文本返回到HTML页面?

    使用当前代码 我只能将视频帧发送到网页 我怎样才能在每个帧中发送一些文本并显示它 FastAPI代码 def generate frames cap i while True success frame cap read if not su
  • 在SSRS中将日期转换为YYYYMMDD格式的整数

    T SQL 中日期 Date 的以下转换在 SSRS 中的等效表达式是什么 CONVERT INT CONVERT CHAR Date 112 我需要将日期参数值转换为 YYYYMMDD 格式的整数 假设您有一个名为的日期参数YourDat
  • 如何使同级内联元素位于单独的行框中?

    div em style background color aqua Line box 1 em span style background color aquamarine another sibling line box 2 span
  • 如何在文件名中添加日期?

    from datetime import datetime date time now datetime now print now 2013 05 23 04 07 40 951726 tar tarfile open test tar
  • HBase 写入:批处理和 put(List) 哪个性能更好?

    我开始学习HBase来编写数据流 我使用 HTableInterface 并遇到性能问题 仅插入 500 行就花费了很多时间 我插入的每批 List 几乎需要 500 000 毫秒 使用 HTableInterface 批量写入 HTabl
  • 即使打开了“noflatten_results”标志,使用 GROUP BY 选择表时 BigQuery 也会展平结果

    我有一个包含重复记录的表 我想删除它们 我创建了一个名为 hash code 的列 它只是所有列的 sha1 哈希值 重复的行将具有相同的哈希码 一切都很好 除了当我尝试使用包含 GROUP BY 的查询创建新表时 我的表具有 RECORD
  • Swift 变量初始化

    我有一个关于 swift 变量初始化的问题 我有两种方法来初始化变量 作为 Objective C 中类的 属性 其中哪一个是最正确的 class Class var label UILabel init label UILabel or
  • Android 4.4.x WebView 使用 location.reload() 时在浏览器中打开一个选项卡

    所有这些都会打开一个带有我的应用程序网址的新选项卡 在浏览器中 location reload document location reload window location reload window location href win
  • 清单与类清单。这个 Scala 错误是什么意思?

    这个错误是什么意思 scala gt val a Array def x Int new def x 3
  • Dask 中的遮罩

    我只是想知道是否有人可以帮助我展示如何使用 dask 在掩码数组上应用 sum 或 mean 等函数 我希望仅计算没有掩码的值的数组的总和 平均值 Code import dask array as da import numpy as n
  • 无法更新 Play 商品详情

    尝试更新商店列表 但无法 无法找到构建的问题 我们在过去 3 个月内没有在清单文件中添加任何额外内容 由 Google Play 支持团队建议 从开发者控制台中删除所有草稿工件 然后等待 2 3 小时 如果您仍然无法联系上Google 控制
  • 如何查看nHibernate生成的SQL?

    如何查看nHibernate生成的SQL 1 2版 您可以在 app config web config 文件中添加如下内容 在 configSections 节点中 section type section 在配置节点中
  • 计算 PostgreSQL 中字符串中子字符串出现的次数

    如何计算 PostgreSQL 中字符串中子字符串出现的次数 Example 我有一张桌子 CREATE TABLE test user uid integer NOT NULL name text result integer CONST
  • iOS10 UNNotificationServiceExtension 未调用

    我正在实施新的 iOS10 扩展以使用丰富的通知 我试图在推送通知上测试它 但不起作用 我只是收到一个简单的通知 并且没有经历扩展 我做了官方网站和其他一些地方指定的所有操作 我的应用程序已启动并运行 并带有推送通知和正确的配置文件 我向我
  • 同步 Mercurial 存储库集合

    我在网络共享上有一组 Mercurial 存储库 为了启用离线工作 我需要在我的笔记本电脑上保存该集合的本地副本 以及在在线时同步这两个集合的简单方法 为此 我编写了一个快速脚本 自动将每个本地存储库与相应的远程存储库同步 推和拉 但它缺少
  • 清理本机反应项目

    如何清理反应本机项目 有什么方法可以像清理 xcode 项目一样清理 React Native 项目吗 任何帮助将不胜感激 一个反应原生项目是关于一个Xcode项目和一个安卓项目 对于纯js代码 不需要clean 所以 你需要的是 清理 X
  • 使用 Javascript 在帧之间传递数据

    我已经设置了一个简单的例子http ryanmalin co uk frames http ryanmalin co uk frames 如果您按 添加 它将把左侧框架中的表单数据粘贴到右侧框架中 当我将正确的框架 URL 更改为另一个域的
  • 在 JAX-RS Provider 中使用 @Context 向 CDI bean 提供上下文信息

    我有一些网络服务 JAX RS WildFly 9 Resteasy RequestScoped public class SomeService operations 现在我想提取上下文信息 例如用户代理 这可以使用 Context pr