问题标签 [jersey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31718 浏览

rest - 未找到 RESTful 资源。404 还是 204?Jersey 在从处理程序返回 null 时返回 204

如果您正在寻找/Resource/Id并且该资源不存在,那么我一直认为 404 是适当的响应。但是,当null从泽西处理程序返回时,我会返回“204 No Content”。我很可能与其中任何一个一起工作,但对其他人对此的想法感到好奇。

回答我自己的下一个问题。要让 Jersey 返回 404,您必须抛出异常。

0 投票
3 回答
1065 浏览

java - Jersey 资源类交互?

所以,我要加快速度在泽西岛,并有一个“最佳实践”的问题。应将资源自包含在一个文件中的严格程度。如果需要,一个资源类是否应该引用另一个类?

一个例子:

我有一个人员资源和一个约会资源。(即:/Person/1 & /appointment/12345)。我还可以执行 /Person/1/Appointments 之类的操作来列出第 1 个人的所有约会。

所以,我的问题是我应该在 Person Resource 类中实现一个方法 getPersonAppointments(),还是只是有人获得对 Appointment 资源类的引用并调用该方法,将所有返回“Appointments”的方法保持在一起。

我不知道有对还是错的方式。

0 投票
2 回答
51637 浏览

json - 如何自定义将 JAXB 对象列表序列化为 JSON?

我正在使用 Jersey 为服务器组件创建 REST Web 服务。

我想在列表中序列化的 JAXB 注释对象如下所示:

我有一个 REST 资源来检索一个如下所示的分布:

我还有一个 REST 资源来检索所有发行版的列表,如下所示:

我使用 ContextResolver 来自定义 JAXB 序列化,目前配置如下:

REST 资源和上下文解析器都可以工作。这是第一个输出的示例:

这正是我想要的。这是列表的输出示例:

这不是我想要的。

我不明白为什么那里有一个封闭distribution标签。我想.rootUnwrapping(true)在上下文解析器中删除它,但显​​然这只删除了另一个封闭标签。这是输出.rootUnwrapping(false)

我还必须配置.arrays("distribution")为始终获取 JSON 数组,即使只有一个元素。

理想情况下,我希望将其作为输出:

我试图返回 a List<XMLDistribution>, a XMLDistributionList(列表的包装器), a XMLDistribution[],但我找不到以我所需格式获取简单 JSON 分布数组的方法。

我还尝试了由JSONConfiguration.natural(),JSONConfiguration.mappedJettison()等返回的其他符号,但没有得到任何类似于我需要的东西。

有谁知道是否可以配置 JAXB 来执行此操作?

0 投票
1 回答
2020 浏览

java - JAXB 和 Jersey 列表解析?

我定义了以下 XSD 来生成一些 jaxb 对象。它运作良好。

我使用 Spring RowMapper 将数据库中的行映射到 Person 对象。所以,我最终得到了一个 List<Person> 对象,它不是People 对象。I People 对象在内部有一个 List<Person> 。

然后在我的泽西资源类中,我有:

返回的 XML 是:

我的问题是它是如何映射到 XML 中的 List<Person> 到 People 的。此外,元素是“人”(大写 P)而不是“人”(小写 P)。似乎它根本没有真正使用 XSD。

编辑这在某种程度上与这个问题有关:JAXB Collections (List<T>) Use Pascal Case instead of Camel Case for Element Names

0 投票
1 回答
2740 浏览

java - Hibernate 延迟加载 + Jersey REST = 急切加载?

我正在开发一个客户端-服务器-应用程序,其中 Hibernate 作为持久层,Jersey REST 用于网络通信。

给定具有角色的用户:

  1. 当我想在客户端显示所有用户时,我不希望 Hibernate 加载角色,也不希望通过网络发送它们
  2. 当我想修改用户的角色时,我希望它们被加载并被转移

我正在使用预加载模式(http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html)来确定 Hibernate 应该加载哪些属性。这工作正常。

在案例 1 中,Hibernate 没有加载任何角色,正如预期的那样。但是一旦 Jersey 创建了要发送到客户端的 XML,它就会读取用户的角色,这反过来让 Hibernate 加载角色(以及所有其他属性)。最后,Hibernate 总是加载属于用户的完整数据集树。

在将用户传递给 Jersey 之前,我曾考虑通过关闭会话来分离用户,因此 Hibernate 无法加载角色,但这似乎没有任何效果。

有任何想法吗?

0 投票
3 回答
663 浏览

rest - 添加带有 Jersey 的方法注释

我们一直在使用 Jersey 作为我们的 web 服务,它非常简单直接。有没有办法在方法定义中添加一个小的描述注释(可能使用像@Description这样的注释):

在 WADL 中会给出如下内容:

谢谢,雷诺

0 投票
2 回答
3703 浏览

rest - 将泽西岛设置为允许缓存?

我从 Jersey @GET 方法返回了以下内容。它可以正常工作,但始终包含 No-cache 标头。我想让客户端缓存这些数据,因为它很少改变。

响应总是:

我在这里做错了吗?

0 投票
1 回答
8753 浏览

tomcat - Jersey、Tomcat 和安全注释

我需要在 Tomcat 6.0.24 容器中保护一个简单的 Jersey RESTful API。我想通过使用tomcat-users.xml文件定义用户和角色的基本身份验证来保持身份验证(这是现在,就像我说的那样它很小)。

现在,为了授权,我希望能够使用 JSR 250 注释,如@RolesAllowed@PermitAll@DenyAll等。

我一生都无法弄清楚如何将这一切连接在一起。

我真的不想走 Spring Security 路线,因为我目前需要一些非常简单的东西。

有人可以指出我正确的方向吗?

0 投票
5 回答
53142 浏览

java - JAX-RS @PathParam 如何传递带有斜杠、连字符和等号的字符串

我是 JAX-RS 的新手,我正在尝试使用 Jersey 来构建一个简单的 RESTful Web 服务。

我有 2 个问题。请澄清这些:

  1. 我试图让我的简单网络服务像这个 URLhttp://localhost:8080/SampleJersey/rest/inchi/InChIName

    InChIName 是这样的字符串InChI=1S/C9H8O4/c1-6(10)13-8-5-3-2-4-7(8)9(11)12/h2- 5H,1H3,(H,11,12)。我如何将其作为 传递@PathParam,我的意思是普通字符串工作正常,但这里有斜杠、连字符和逗号。我怎样才能忽略这些。我试着把它放在引号里,但这没有用。我该怎么做?

  2. 我需要将它传递InChI给另一个 Web 服务并返回一个 XML 作为输出,我想将该 XML 输出显示为我的 Web 服务的输出。如果我有@Produces("application/xml")它会工作吗?

这是我的代码:

0 投票
5 回答
63563 浏览

java - 如何在服务器上获取球衣日志?

我将球衣用于 REST WS。如何在服务器端启用球衣日志?

长话短说:我得到一个客户端异常 - 但我在 tomcat 日志中看不到任何内容[它甚至没有达到我的方法]。由于堆栈跟踪说“toReturnValue”它确实从服务器得到了一些东西。但我不知道服务器说什么。