问题标签 [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.
rest - 未找到 RESTful 资源。404 还是 204?Jersey 在从处理程序返回 null 时返回 204
如果您正在寻找/Resource/Id
并且该资源不存在,那么我一直认为 404 是适当的响应。但是,当null
从泽西处理程序返回时,我会返回“204 No Content”。我很可能与其中任何一个一起工作,但对其他人对此的想法感到好奇。
回答我自己的下一个问题。要让 Jersey 返回 404,您必须抛出异常。
java - Jersey 资源类交互?
所以,我要加快速度在泽西岛,并有一个“最佳实践”的问题。应将资源自包含在一个文件中的严格程度。如果需要,一个资源类是否应该引用另一个类?
一个例子:
我有一个人员资源和一个约会资源。(即:/Person/1 & /appointment/12345)。我还可以执行 /Person/1/Appointments 之类的操作来列出第 1 个人的所有约会。
所以,我的问题是我应该在 Person Resource 类中实现一个方法 getPersonAppointments(),还是只是有人获得对 Appointment 资源类的引用并调用该方法,将所有返回“Appointments”的方法保持在一起。
我不知道有对还是错的方式。
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 来执行此操作?
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
java - Hibernate 延迟加载 + Jersey REST = 急切加载?
我正在开发一个客户端-服务器-应用程序,其中 Hibernate 作为持久层,Jersey REST 用于网络通信。
给定具有角色的用户:
- 当我想在客户端显示所有用户时,我不希望 Hibernate 加载角色,也不希望通过网络发送它们
- 当我想修改用户的角色时,我希望它们被加载并被转移
我正在使用预加载模式(http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html)来确定 Hibernate 应该加载哪些属性。这工作正常。
在案例 1 中,Hibernate 没有加载任何角色,正如预期的那样。但是一旦 Jersey 创建了要发送到客户端的 XML,它就会读取用户的角色,这反过来让 Hibernate 加载角色(以及所有其他属性)。最后,Hibernate 总是加载属于用户的完整数据集树。
在将用户传递给 Jersey 之前,我曾考虑通过关闭会话来分离用户,因此 Hibernate 无法加载角色,但这似乎没有任何效果。
有任何想法吗?
rest - 添加带有 Jersey 的方法注释
我们一直在使用 Jersey 作为我们的 web 服务,它非常简单直接。有没有办法在方法定义中添加一个小的描述注释(可能使用像@Description这样的注释):
在 WADL 中会给出如下内容:
谢谢,雷诺
rest - 将泽西岛设置为允许缓存?
我从 Jersey @GET 方法返回了以下内容。它可以正常工作,但始终包含 No-cache 标头。我想让客户端缓存这些数据,因为它很少改变。
响应总是:
我在这里做错了吗?
tomcat - Jersey、Tomcat 和安全注释
我需要在 Tomcat 6.0.24 容器中保护一个简单的 Jersey RESTful API。我想通过使用tomcat-users.xml
文件定义用户和角色的基本身份验证来保持身份验证(这是现在,就像我说的那样它很小)。
现在,为了授权,我希望能够使用 JSR 250 注释,如@RolesAllowed
、@PermitAll
、@DenyAll
等。
我一生都无法弄清楚如何将这一切连接在一起。
我真的不想走 Spring Security 路线,因为我目前需要一些非常简单的东西。
有人可以指出我正确的方向吗?
java - JAX-RS @PathParam 如何传递带有斜杠、连字符和等号的字符串
我是 JAX-RS 的新手,我正在尝试使用 Jersey 来构建一个简单的 RESTful Web 服务。
我有 2 个问题。请澄清这些:
我试图让我的简单网络服务像这个 URL
http://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
,我的意思是普通字符串工作正常,但这里有斜杠、连字符和逗号。我怎样才能忽略这些。我试着把它放在引号里,但这没有用。我该怎么做?我需要将它传递
InChI
给另一个 Web 服务并返回一个 XML 作为输出,我想将该 XML 输出显示为我的 Web 服务的输出。如果我有@Produces("application/xml")
它会工作吗?
这是我的代码:
java - 如何在服务器上获取球衣日志?
我将球衣用于 REST WS。如何在服务器端启用球衣日志?
长话短说:我得到一个客户端异常 - 但我在 tomcat 日志中看不到任何内容[它甚至没有达到我的方法]。由于堆栈跟踪说“toReturnValue”它确实从服务器得到了一些东西。但我不知道服务器说什么。