Jersey:返回字符串列表

2024-05-26

我尝试以 JSON 和 XML 形式返回 Jersey 中的字符串列表。 我以为这会是微不足道的。

我的第一次尝试是写这样的东西

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/bar")
public List<String> get() {
    return dao.get();
}

我期望类似这样的输出: ["string1", ..., "string] 不幸的是我得到了这个:

com.sun.jersey.api.MessageException: A message body writer for Java class java.util.LinkedList, and Java type java.util.List<java.lang.String>, and MIME media type application/json was not found 

然后我为 List 编写了一个包装器 StringList

@XmlRootElement
public class StringList {

    private List<String> data;

    public StringList() {
    }

    public StringList(List<String> data) {
        this.data = data;
    }

    public List<String> getData() {
        return data;
    }

    public void setData(List<String> data) {
        this.data = data;
    }
}

并将立面修改为

@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/foo")
public StringList stringlist() {
    return new StringList(sl());
}

这对于项目数超过 1 的列表非常有效。

{"data":["foo","bar"]}

不幸的是,我得到了一个或零个元素的两个意外结果

{"data": "just one"} // for one element i would expect {"data": ["just one"]}

null // for no elements i would expect {"data": []}

我做错了什么吗? 我怎样才能解决这个问题?


好的,我可以通过搜索样本来修复它

这确实有效,但它只能用于 JSON 而不能用于 XML

@GET
@Produces({MediaType.APPLICATION_JSON})
@Path("/get")
public JSONArray get() {;
    return new JSONArray(dao.getStringList());
}

解决了问题,但是还有通用方法吗?

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

Jersey:返回字符串列表 的相关文章

随机推荐

  • 使用 dotnet pack 打包多个程序集

    正如问题所说 如何使用 dotnet pack 打包多个项目 程序集 使用 VS2017 和新的 csproj 文件 在 csproj 文件中包含您需要的程序集
  • 使用 Google 地图实现最佳地图路线

    有没有办法使用 Google Maps API 来获取给定一组航路点的 优化 路线 换句话说 旅行推销员问题的 足够好 解决方案 或者它是否总是返回带有按指定顺序点 Google Maps API DirectionsRequest 中有一
  • ssh:连接到主机 bitbucket.org 端口 22:连接超时

    一切都工作得很好 做了一些git pushes 没有问题 今天我决定将我的框架更新到最新版本 因此它稍微改变了我项目的目录结构 因此 在 Bitbucket 中 我创建了一个新的存储库 dev1 project com 并将我的项目文件夹重
  • 在 django 视图中执行阻塞请求

    在我的 django 应用程序的一个视图中 我需要执行相对较长的网络 IO 操作 问题是其他请求必须等待该请求完成 即使它们与该请求无关 我做了一些研究并偶然发现了 Celery 但据我了解 它用于执行独立于请求的后台任务 所以我不能使用任
  • Spring 与 Thymeleaf 以 html 形式绑定日期

    我有一个简单的表单片段 例如
  • 如何使用 google.oauth2 python 库?

    我试图对谷歌机器学习项目的安全预测端点进行简单的休息调用 但它找不到 google oauth2 模块 这是我的代码 import urllib2 from google oauth2 import service account Cons
  • Java 需要一个 FileSet 包/类

    任何人都可以建议 Java 中的 FileSet 包 类吗 我所说的 FileSet 是指文件和目录的集合以及正则表达式支持的包含和排除规则 类似于 Apache Ant 谢谢 Apache 公共 IO文件工具 http commons a
  • Ruby on Rails:如何设计 SaaS 基础设施?

    我正在构建一个 Rails 3 应用程序 计划将其作为基于订阅的 SaaS 软件即服务 产品提供 基本上 我希望用户能够点击我的 注册 页面 创建一个新帐户 并立即开始使用该软件 我想要实现的一个很好的例子是 http www gethar
  • 无法创建 TFS 构建定义 (TF225000) 并且没有构建管理员组

    我无法在 TFS 2013 团队项目上创建构建定义 因为出现错误 我在项目管理员组中 我被添加到项目集合构建管理员组作为一种可能的解决方法 但我仍然遇到相同的错误 团队项目没有 构建管理员 组 这是一个明显的缺陷项目级组 https msd
  • 在引导折叠手风琴中显示部分文本

    我想替换一个允许用户使用 Bootstrap 折叠手风琴 阅读更多内容 的脚本 我的问题是 据我所知 手风琴要么打开 要么关闭 有谁知道在关闭模式下显示一些文本的选项 在我现在使用的脚本中 我可以通过更改文本区域的高度来使一些文本可见 但在
  • 初始化二维数组时出现分段错误

    我已经检查过我的代码是否正确地划分了内存空间 但是一旦我尝试将 2D 数组初始化为某些值 然后对这些值求和 我就会在 2x2 数组上收到分段错误 我想最终将我的代码扩展到更大的数组 但我什至无法让它在这里工作 我知道有很多关于 malloc
  • 如何禁用 Google 请求许可定期检查手机上已安装的应用程序?

    我正在开发一个 Android 应用程序 因此我不断地在我的测试设备上构建和安装该应用程序 几天以来 我在每次构建 安装时都会提出一个问题 Google 可能会定期检查已安装的应用程序是否存在潜在危害 行为 在 Google 设置 gt 验
  • Sharepoint 的 CAML 查询中的日期时间比较

    我正在尝试从共享点列表中获取某些项目 具体取决于自定义列中的日期 我已经使用 U2U Caml Builder 创建了查询 这很有效 但是当我将其放入 Web 部件中自己的代码中时 它总是返回列表中的所有项目 这是我的代码 DateTime
  • Pandas - 过滤器和正则表达式搜索 DataFrame 的索引

    我有一个 DataFrame 其中列是 MultiIndex 索引是名称列表 即index Andrew Bob Calvin 我想创建一个函数来返回数据帧中使用名称 Bob 或以字母 A 开头或以小写字母开头的所有行 如何才能做到这一点
  • url文本压缩(不是缩短)并存储在mysql中

    我在 mysql 中有一个 url 表 其中只有两个字段 id 和 varchar 255 用于 url 目前那里有超过 5000 万个 url 我的老板刚刚向我提供了有关当前项目扩展的线索 这将导致在该 url 表中添加更多的 url 预
  • 在 Ubuntu 中与未编译的着色器链接

    我需要加载 glsl 来绘制一些东西 我的环境是Ubuntu 13 04 因此它不存在GLuint InitShader GLuint GLuint 这是我的对象创建 预链接步骤和链接的配置 不幸的是 它仍然出现错误 该错误与未编译的着色器
  • 使用主管在调试中运行 Node.js 应用程序

    我在用导师 https www npmjs com package supervisor自动重新加载我的node js 例如 supervisor w app js 但是我不知道如何让主管在调试中运行node js 进程 例如相当于 nod
  • 在 Must bool 查询中使用正则表达式搜索与使用 Must_not bool 查询

    我想进行类似的查询 获取包含 不包含给定字段的 某些值 的所有文档 获取给定字段的值等于 不等于 某个值 的所有文档 根据我的映射 字段是字符串类型 这意味着它们支持关键字和全文搜索 例如 myField type text fields
  • 在 perl 中 \*STDIN 与 STDIN 相同吗?

    我是作者Python化者 https github com snoopyjc pythonizer我正在尝试将 CGI pm 的代码从标准 perl 库翻译为 Python 我在中遇到了这段代码从客户端读取 https metacpan o
  • Jersey:返回字符串列表

    我尝试以 JSON 和 XML 形式返回 Jersey 中的字符串列表 我以为这会是微不足道的 我的第一次尝试是写这样的东西 GET Produces MediaType APPLICATION JSON MediaType APPLICA