Jersey:@PathParam,带逗号到 List

2023-12-20

我想用这种模式调用我的网络服务:

/resource/1,2,3

在我的类中,我想将参数绑定到对象列表

@Path("/resource")
public class AppWS {

    @GET
    @Path("/{params}")
    public Response get(@PathParam("params") List<MyObject> params) {
        return Response.status(200).entity("output").build();
    }
}

使用一个简单的对象:

public class MyObject {
    Integer value;
    public MyObject(Integer value) {
        this.value = value;
    }
}

注意:如果可能的话,我不想创建一个扩展 List 的 MyObjectList (并且有一个分割我的字符串的构造函数)

我该如何进行?


我不确定方法1,2,3.

如果你坚持,

private Response get(List<MyObject> params) {
}

@GET
@Path("/{params}")
public Response get(@PathParam("params") String params) {

    return get(Stream.of(params.split(","))
        .map(MyObject::new)
        .collect(Collectors.toList()));
}

如果你真的坚持的话

注解,

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.PARAMETER})
public @interface MyObjectsParam {

}

转换器,

public class MyObjectsParamDateConverter
    implements ParamConverter<List<MyObject>> {

    @Override
    public List<MyObject> fromString(final String value) {
        return Stream.of(params.split(","))
          .map(MyObject::new)
          .collect(Collectors.toList())
    }

    @Override
    public String toString(final List<MyObject> value) {
        return value.stream()
            .map(o -> o.getValue())
            .map(Object::toString)
            .collect(Collectors.joining(","));
    }
}

提供者,

@Provider
public class MyObjectsParamConverterProvider
    implements ParamConverterProvider {

    @Override
    @SuppressWarnings("unchecked")
    default ParamConverter getConverter(final Class<S> rawType,
                                        final Type genericType,
                                        final Annotation[] annotations) {
        for (final Annotation annotation : annotations) {
            if (MyObjectsParam.class.isInstance(annotation)) {
                return new MyObjectsParamDateConverter();
            }
        }

        return null;
    }
}

现在你可以像这样使用它。

@GET
@Path("/{params}") // still '1,2,3'
public Response get(
    @PathParam("params")
    @MyObjectsParam // IN ACTION!!!
    List<MyObject> params) {

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

Jersey:@PathParam,带逗号到 List 的相关文章

  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 2020年instagram api更改后如何从instagram公共帐户获取instagram关注者数量?

    我试图仅使用用户的 Instagram 句柄 又名 myusername 来检索关注者计数 我在几个答案中读到 您可以访问 https www instagram com username a 1 来检索包含所有详细信息的 json 块 然
  • Google Compute 实例是否有稳定的公共 DNS 名称?

    这是一个分为两部分的问题 GCE实例有稳定的公共DNS名称吗 例如 公共 IP a b c d 的默认 DNS 名称似乎是 d c b a bc googleusercontent com 如果是 获取此信息的最佳方式是什么 这是我迄今为止
  • Websocket 握手期间发生 Rails ActionCable 错误

    我正在尝试使用 Rails 5 ActionCable 构建一个消息应用程序 但我在 JS 控制台中收到上述错误 ws localhost 3002 cable failed Error during WebSocket handshake
  • 有没有办法为 ASP.NET 中的应用程序定义时区?

    有没有一种方法可以为 ASP NET 中的应用程序定义时区 以便隐式转换从当前服务器时间读取 与当前服务器时间比较的所有时间 或者我是否需要在每次 DateTime Now 调用时放入转换语句 我不确定 ASP 的最新发展 但是这个2006
  • 不带括号的 C 函数调用

    这是一个简单的 C 程序 include
  • C# 中 float 类型的最大值

    当我这样做时 float x float MaxValue 我的结果是 3 40282347E 38 E 38是什么 如果没有这个符号 我该如何表示最大数 msdn说范围 1 5 10 45到 3 4 10 38 但这对我没有帮助 E 38
  • nvprof 输出:“没有分析内核”是什么意思,以及如何修复它

    我最近通过系统的包管理器在我的 arch Linux 机器上安装了 Cuda 并且我一直在尝试通过运行一个简单的向量加法程序来测试它是否正常工作 我只是复制粘贴代码本教程 https devblogs nvidia com even eas
  • 在 x86 汇编中划分 64 位时出现问题

    在 x86 程序集中进行划分时 我不断收到 程序收到信号 SIGFPE 算术异常 这很令人困惑 因为如果我除以 10 答案应该小于 64 位答案 mov 0x82b40000 eax mov 0x21c3677c edx mov 10000
  • 构造函数的单元测试

    我正在实验室进行单元测试 下面是我正在测试的应用程序中的一段代码 大多数单元测试都已完成 但关于下面的构造函数 我只是不知道如何测试它 例如 构造函数到底对数组元素做了什么 测试构造函数的好方法是什么 是否有一个善良的灵魂可以给我一个正确的
  • 嵌入字体在 Flex 移动 ActionBar 中不起作用

    我嵌入了一些字体 并在我的移动应用程序中使用它们 它们都正常工作 除了我尝试用于 ActionBar 的字体 他们在其他地方工作 并替代 Comic Sans MS for titleCGF 将其更改为 Comic Sans 那么为什么它不
  • C++中不同参数的重载虚函数

    我想在 C 中重载具有不同参数的虚函数 但它不起作用 virtual void Draw int nDeltaX int nDeltaY virtual void Draw int nDeltaX int nDeltaY bool m bF
  • 找不到必要的构建工具。使用 devtools 遇到错误

    我正在尝试安装 BTYDPlus 包 https github com mplatzer BTYDplus https github com mplatzer BTYDplus 当我输入这个命令时 devtools install gith
  • Excel-VBA:在 .aspx 网页上抓取数据之前的按钮和下拉列表

    我想使用 VBA 从网页获取表格 但无法直接访问它 因为我需要从一个选项卡切换到另一个选项卡 该问题依赖于网页的 aspx 端 URL 不会相应地演变 URL http www morningstar fr fr fundquickrank
  • 使用 aws cli 将日志流式传输到 elastic

    我想启用从 Cloudwatch 到 Elasticsearch 到 Amazon Elasticsearch Service 的流 我熟悉如何手动执行此操作 我正在寻找一种通过运行 aws cli 命令来实现此目的的方法 假设 Elast
  • Vagrant/Clojure/Emacs

    我想构建一个标准环境 用于使用 Emacs 探索 Clojure 有人有适合这个的食谱吗 我正在考虑一个运行 Ubuntu 风格的 Vagrant 系统 带有 NREPL 和一些有用的 EMACS 支持插件 vagrant box add
  • 批量插入现有数据:防止 JPA 在每次插入之前进行选择

    我正在开发一个 Spring Boot 应用程序 该应用程序使用 JPA Hibernate 作为持久层 我目前正在实现迁移功能 我们基本上将系统的所有现有实体转储到 XML 文件中 此导出还包括实体的 ID 我遇到的问题位于另一侧 重新导
  • 标准 C++14 委员会草案是否公开?

    截至上周六 http isocpp org blog 2013 04 trip report iso c spring 2013 meeting 今天下午在英国布里斯托尔 ISO C 标准委员会通过了 通用 lambda 动态数组 C99
  • cuda 推力中的 fp16 支持

    我无法在推力 cuda 模板库中找到有关 fp16 支持的任何信息 甚至路线图页面也没有任何相关信息 https github com thrust thrust wiki Roadmap https github com thrust t
  • R如何安装指定版本的bioconductor包?

    我想使用的当前版本的软件包在生物导体上失败 然而 旧版本曾经可以工作 我想知道如何安装特定版本的生物导体包 提前致谢 在我的例子中 该软件包称为biomaRt 失败的版本是2 34 2 而2 34 0是成功的 重要更新 今年是2022年 我
  • Jersey:@PathParam,带逗号到 List

    我想用这种模式调用我的网络服务 resource 1 2 3 在我的类中 我想将参数绑定到对象列表 Path resource public class AppWS GET Path params public Response get P