JAX-RS / Jersey 中可变参数数组的路径段序列?

2023-12-12

JAX-RS/Jersey 允许使用以下方法将 URL 路径元素转换为 Java 方法参数@PathParam注释。

有没有办法将未知数量的路径元素转换为 vararg Java 方法的参数? I. e. /foo/bar/x/y/z应该转到方法:foo(@PathParam(...) String [] params) { ... } where params[0] is x, params[1] is y and params[2] is z

我可以在 Jersey/JAX-RS 或其他方便的方式中执行此操作吗?


不确定这是否正是您想要的,但您可以做这样的事情。

@Path("/foo/bar/{other: .*}
public Response foo(@PathParam("other") VariableStrings vstrings) {
   String[] splitPath = vstrings.getSplitPath();
   ...
}

其中 VariableStrings 是您定义的类。

public class VariableStrings {

   private String[] splitPath;

   public VariableStrings(String unparsedPath) {
     splitPath = unparsedPath.split("/");
   }
}

请注意,我尚未检查此代码,因为它只是为了给您一个想法。 这是可行的,因为 VariableStrings 可以通过其构造函数来注入 它只需要一个字符串。

查看docs.

最后,作为使用 @PathParam 注释注入 VariableString 的替代方法 您可以将此逻辑包装到您自己的自定义 Jersey Provider 中。该提供程序将或多或少以与上面相同的方式注入“VariableStrings”,但它可能看起来更干净一些。不需要 PathParam 注释。

Coda Hale 给出了一个很好的overview.

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

JAX-RS / Jersey 中可变参数数组的路径段序列? 的相关文章

  • 有没有一种独立的JAVA可以在PC上运行而无需任何操作系统

    据我所知 java 程序可以在任何操作系统上运行 任何类型的机器都有 JVM 我需要一个在我的 PC 上独立运行的 JVM 而不是在我的操作系统 Windows 或任何其他操作系统 上运行 我的意思是 JVM 的作用类似于启动 而不是操作系
  • 具有“繁忙”线程的 threadPoolExecutor 如何被终止?

    我的问题有点复杂 让我尝试彻底解释一下 但如果您需要更多详细信息 请随时询问我 我会添加它们 我最近 通过实验 了解到 如果线程连续工作 例如 while true 循环中的整数运算 则中断线程对其没有影响 话题继续进行 就像什么都没发生一
  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • 如何使用 Java 本机接口将字节数组传递到以 char* 作为参数的 C 函数中?

    所以我需要使用JNI从java调用C函数 当传入不同的数据类型 创建本机变量 头文件 共享库等等 时 我已经能够成功地做到这一点 但无法让它与字节数组一起使用 这是我的 C 函数 include
  • jUnit 中每个 @Test 的不同拆卸

    有没有办法为 jUnit 中的每个 Test 定义不同的拆卸 Use the After注释来指示每个之后要运行的方法 Test 像这样的全套注释是 BeforeClass 首先 Tests are run Before 在每个之前 Tes
  • REST API 登录模式

    我正在创建一个 REST api 严格遵循 apigee 建议 使用名词而不是动词 将 api 版本烘焙到 URL 中 每个集合有两个 api 路径 GET POST PUT DELETE 用法等 我正在开发登录系统 但不确定登录用户的正确
  • GWT 代码服务器在使用 Maven 原型的新生成的项目中找不到模块

    我已经使用 GWT 和 eclipse 一段时间了 我想玩一下 Maven 和 GWT 插件 gwt maven plugin 在此输入链接描述 http mojo codehaus org gwt maven plugin 我尝试在 Ec
  • 在 Java 中停止线程? [复制]

    这个问题在这里已经有答案了 我正在编写一段代码 该代码连接到服务器 使用该连接生成一堆线程并执行一堆 东西 在某些情况下 连接会失败 我需要停止一切并从头开始使用新对象 我想在对象之后进行清理 但在线程上调用 thread stop 但此方
  • Hazelcast Jet 变更数据捕获

    我在我的应用程序中使用 Hazelcast 更改数据捕获 CDC 我使用 CDC 的原因是 如果使用 jdbc 或其他替代功能将数据加载到缓存中 会花费大量时间 所以CDC将在数据库和 Hazelcast Jet 之间进行数据同步 Stre
  • 如何跨工作区保存 E​​clipse 启动配置文件?

    当我复制 Eclipse 项目目录时 它包含 classpath 和 project 文件 这样当我将同一目录带到另一个 Eclipse 实例时 我不必设置我的构建路径等 假设所有资源都包含在在项目中 而不是外部 但是 此过程不会导致启动配
  • REST 中子资源和路径变量冲突?

    设计路径解析可能含糊不清的 REST API 是否被认为是不好的做法 例如 GET animals id Returns the animal with the given ID GET animals dogs Returns all a
  • 使用 Gradle 构建 Kotlin + Java 9 项目

    我对 Gradle 老实说 还有 Java 9 相当陌生 我正在尝试使用 Gradle 构建一个混合了 Java 9 和 Kotlin 的简单库项目 更详细地说 Java中有一个接口 Kotlin中有一个实现 我会用 Kotlin 做所有事
  • Java 会话变量

    我听说有些人认为在会话中将信息存储在服务器上是一个坏主意 因为它不安全 因此 在多页面业务流程功能中 应用程序将数据写入数据库 然后在需要时检索信息 在会话中存储私人信息是否一定不安全 只要会话本身安全 在会话中存储属性就不存在安全风险劫持
  • IntelliJ 对于 Java 项目使用的默认构建过程是什么?

    直接从 IntelliJ 中的 IDE 构建 Java 项目非常好 它速度很快 而且很有效 我无法找到任何有关 IntelliJ 如何进行这些默认构建的文档 我猜它使用Ant 我想做的是为下载我的项目的任何人自动化这个快速 轻松的构建过程
  • Maven 依赖冲突:org.w3c.dom.ElementTraversal

    我有一个 Java 代码库 它使用 Maven 进行依赖项解析并在 CI 上运行测试 经过最近的一批开发 大到足以很难识别重大更改 我的一些测试现在在通过 Maven 运行时失败了NoClassDefFoundError for org w
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 当列表中不存在 X 时,从列表中查找大于 X 的值

    我试图从列表中查找大于特定值 在我的情况下已知 的值 Example Given list 1 2 5 10 15 list is sorted 查找大于的值X 7在这种情况下 期望的结果 返回一个包含值的列表 10 15 我尝试使用jav
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • 找不到 `activityViewModels()` Hilt Android

    我在我的项目中使用 Hilt 和 MVVM 我想要一个viewModel from activityViewModel在 2 个活动中使用相同的内容 但我的 Android Studio 说未解析的参考 我的应用程序 build gradl
  • 尝试 Catch 性能 Java

    当捕获异常而不是进行检查时 try catch 需要多长时间 以纳秒为单位 假设消息具有用于查找的 HashMap 类型性能 try timestamp message getLongField MessageField TIMESTAMP

随机推荐

  • std::put_time 格式

    我想了解如何工作 std put time 以及如何获取 YYYY MM DD HH MM SS 格式的日期戳 现在我写这样的东西 std chrono time point
  • 将对象转换为数组的 PHP 错误

    我之前有过这个问题 最后得出的结论是这是 5 2 5 中的一个错误 好吧 它在 5 2 6 中仍然有问题 至少对我来说 请告诉我它是否损坏或对您有用 obj new stdClass obj gt foo bar obj gt 0 zero
  • 在 Oracle SQL 中使用复杂 IF 语句

    您好 我正在尝试在 Band 属性中编写 If 语句 但没有成功 T T 我想做的是根据所有者类别 棚屋和供水属性设置单个角色 A B C D 任何帮助都会很棒 CREATE TABLE Rent Band Plot ID NUMBER 3
  • 从字符串列表中提取每个单词

    我正在使用Python 我的清单是 str Hello dude What is your name My name is Chetan 我想将字符串中每个句子中的每个单词分开并将其存储在new list中 new list 会像 new
  • 通过“this”与“prototype”分配函数有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Javascript 中使用 prototype 与 this 我对这两种向函数添加方法的类型感到困惑 让我用一个例子来解释一下 var foo function this bar functio
  • ConvertTo 函数中 Mat 的内存泄漏

    我在管理函数中的内存时遇到一些问题 Valgrid 说我在转换函数后出现内存泄漏 难道是因为数据没有正常发布 我尝试使用临时指针 但我的程序崩溃或无法正常工作 以前有人遇到过这个问题吗 this gt images push back ne
  • css“[class*=my-class].my-subclass”在做什么?

    我继承了一些 css 并且在网上到处搜索以了解 css 块所表达的内容 如下所示 class wrapper logo padding top 32px important 星号和方括号的作用是什么 在谷歌上搜索 和 很困难 如果这个问题很
  • Java Map 的递归迭代

    我正在编写一个递归函数 其目的是迭代 pList 文件 我的代码是 public static void HashMapper Map lhm1 throws ParseException Set set jsonObject keySet
  • 如何恢复隐藏的未提交的更改

    我的开发分支中有一些未提交的更改 我使用git stash 但在那些隐藏的变化中 有一些非常重要的变化 有什么办法可以恢复这些更改吗 另外 从那以后我对隐藏的代码文件进行了一些更改 如果可能的话 我是否有机会检索新分支中隐藏的更改 这个简单
  • Swift 3:泛型中 TapGestureRecognizer 内的委托不会被调用

    我有一个像这样的协议 public protocol SubmitAgeDelegate class func changeSubmitButtonBool 问题是我想在泛型类中调用它 open class GenericControlle
  • 当悬停图像时,其余图像会更改过滤器

    我有 10 张图像 当我将鼠标悬停在其中一张时 我希望剩下的 9 张图像可以更改过滤器 这就是我所拥有的 CSS posts wrapper hover posts webkit filter blur 10px jQuery docume
  • Android,静音模式通知

    在我的 Android 应用程序中 我需要知道 每当用户处于电话选项模式 按住电源按钮一段时间时出现的模式 并按下 静音模式 按钮时 我发现飞行模式与ACTION AIRPLANE MODE CHANGED 但我找不到 静音模式 按钮的任何
  • 翻译为 DCG Semicontext 不起作用 - 继续

    作为对此的后续行动question这提出了问题 返回列表中项目的计数 但如果两个相同的项目彼此相邻 则不增加计数 这段代码是我用 DCG 和半上下文解决这个问题的最接近的代码 lookahead C C gt C empty list No
  • 自动完成文本视图还是搜索对话框?

    我需要做的只是可以单击关键字的建议并将用户带到界面 xml 布局 例如下面的结果 存在 丰富 缺乏 我在 R layout abide 中创建了它们 Though AutoCompleteTextView看起来没那么麻烦 但是可以做到吗 或
  • 规则已被弃用,取而代之的是什么呢(TSQL)?

    规则 Transact SQL 1 是可重用的 从而克服了检查约束不可重用的缺点 现在我读到 1 此功能将在 Microsoft SQL Server 的未来版本中删除 避免在新的开发工作中使用此功能 并计划修改当前使用此功能的应用程序 我
  • 在地图中绘制半径为定义距离的圆

    我能够绘制地图并为特定点添加标题 library maps map state text 80 83 35 19 Charlotte cex 6 我还可以绘制一个以该点为中心的圆 symbols 80 83 35 19 circles 2
  • 如何从 HTML 页面获取 Javascript 变量?

    在互联网页面的源代码中 有一个包含 JSON 数据的 Javascript 变量 我想将其存储在 PHP 程序的变量中 知道如何做吗 该文件位于公共 html 链接上 如下所示 感谢您的时间和答复 您使用 互联网上的页面 和 公共 这两个词
  • 如何以编程方式知道它是Android中的平板电脑还是手机? [复制]

    这个问题在这里已经有答案了 我想检测给定的设备是 Android 中的平板电脑还是手机 我已经在模拟器中尝试过这两个 但没有成功 两者都在这里 First if getResources getConfiguration screenLay
  • 如何在 TextArea 上使用 TAB/Enter KeyPressed,并在不使用内部 API 的情况下替换为 focustraversal 或 Enter 键?

    我需要一个可以自动换行 添加滚动条等的控件 但忽略回车键并使用 tab shift 选项卡跳转到下一个控件 我似乎无法弄清楚这一点 这是我做的控件 看起来只是简单的停留在文本区域 这是从网上的一个旧示例中使用的 似乎只有当 textArea
  • JAX-RS / Jersey 中可变参数数组的路径段序列?

    JAX RS Jersey 允许使用以下方法将 URL 路径元素转换为 Java 方法参数 PathParam注释 有没有办法将未知数量的路径元素转换为 vararg Java 方法的参数 I e foo bar x y z应该转到方法 f