问题标签 [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 投票
7 回答
65318 浏览

json - 在 Jersey 服务中使用 JSON 对象

我一直在谷歌搜索我的屁股试图找出如何做到这一点:我有一个 Jersey REST 服务。调用 REST 服务的请求包含一个 JSON 对象。我的问题是,从 Jersey POST 方法实现中,我怎样才能访问 HTTP 请求正文中的 JSON?

任何提示,技巧,示例代码的指针将不胜感激。

谢谢...

——史蒂夫

0 投票
2 回答
4459 浏览

java - 在 Grizzly 上使用 JaaS 和 Jersey

我试图找到一种简单、灵活的方式将 JaaS 身份验证添加到 REST。我发现了一篇认为引导我走向正确方向的帖子(参见 StevenC 的回答)。听起来 servlet 容器负责安全性,而不是 Jersey 代码本身。我喜欢这个想法,但需要一些关于实施的指导。

Grizzly 是我的 servlet 容器,我想将其配置为使用 JaaS 进行身份验证。现在,一个简单的用户名/密码组合就可以了,直接在代码中硬编码用户名/密码对就可以了。只要它使用 JaaS,我们就可以稍后细化这些细节。

至于通过 HTTP 发送的内容,我认为存储 cookie 将是使这一切正常工作的最简单方法。不惜一切代价让身份验证垃圾远离我的泽西代码。

到目前为止,这是启动 Grizzly 的代码:

如果整个过程有效,检查用户权限的最佳方法是什么?我可能希望我的 REST 代码在某些点实际验证权限。我什至走在正确的轨道上吗?有没有更简单的方法?指向教程的链接将是一个很好的答案。即使是像“我做到了,而且奏效了”这样的回答也会给我一个温暖的模糊感,我正朝着正确的方向前进。

谢谢你的帮助。

编辑:对 StevenC 评论的一些澄清:

  • 您还想使用 servlet 过滤器来保护您的资源吗?我将使用任何可以将身份验证细节与泽西代码分开的方法。它不必是 servlet 过滤器。
  • “将其配置为使用 JaaS”是什么意思?最初的计划是使用 JaaS 保护当前的 API。下一阶段将是使整个 API 在线可用。围绕 API 调用使用 Jersey 包装器似乎是有意义的,但让 Grizzly 处理身份验证。我相信,那时灰熊必须与 JaaS 进行交互。
  • 您是否认为应该有一些配置可以简单地导致 grizzly 保护您的资源?我正在考虑对用户进行身份验证和基于角色授权用户访问资源的两步过程。这个想法是让 Grizzly 处理身份验证(使用 JaaS)和 Jersey 处理授权。
  • “我认为没有必要在 RESTful 资源中使用 cookie。” 删除 cookie 的使用会很棒,但是如何实现呢?系统需要知道用户是否经过身份验证。我宁愿不要求他们为每次通话传递用户名/密码/等。甚至每次调用都将会话令牌作为参数传递似乎“丑陋”。

另外,请注意我对 REST 还很陌生。我已经做 SOAP 几年了,所以我可能有一种“SOAP 偏见”,这可能使我对每个人都使用的一些明显、简单的解决方案视而不见。如果有更简单的方法,欢迎分享。我只是想尽可能多地学习。

0 投票
7 回答
54084 浏览

java - 如何自动化 REST API 的文档(泽西岛实现)

我使用 Java Jersey(和 JAXB)编写了一个非常广泛的 REST API。我也使用 Wiki 编写了文档,但这是一个完全手动的过程,非常容易出错,尤其是当我们需要进行修改时,人们往往会忘记更新 wiki。

环顾四周,大多数其他 REST API 也在手动创建他们的文档。但我想知道是否有一个很好的解决方案。

需要为每个端点记录的事情是:

  • 服务名称
  • 类别
  • URI
  • 范围
  • 参数类型
  • 响应类型
  • 响应类型架构 (XSD)
  • 示例请求和响应
  • 请求类型(获取/放置/发布/删除)
  • 描述
  • 可能返回的错误代码

然后当然有一些通用的东西是全球性的,例如

  • 安全
  • REST 概述
  • 错误处理
  • ETC

这些一般的东西可以描述一次并且不需要自动化,但是对于 Web 服务方法本身来说,自动化它似乎是非常可取的。

我考虑过可能使用注释,并编写一个生成 XML 的小程序,然后是一个 XSLT,它应该生成 HTML 中的实际文档。使用自定义 XDoclet 是否更有意义?

0 投票
0 回答
1546 浏览

http - HTTP 303 重定向不适用于我的浏览器

我的球衣资源将其发送到客户端浏览器,即(safari & chrome),但浏览器没有重定向。下面我的 HTTP 响应有什么问题吗?

0 投票
5 回答
157072 浏览

java - 如何使用 Jersey 获取完整的 REST 请求正文?

如何POST使用 Jersey 获取请求的完整 HTTP REST 请求正文?

在我们的例子中,数据将是 XML。大小从 1K 到 1MB 不等。

文档似乎表明您应该使用,MessageBodyReader但我看不到任何示例。

0 投票
2 回答
942 浏览

java - jersey Viewable 和 c:import 标签库

给一个资源类,它有一个方法,它返回一个 Viewable(或通常任何 jsp 页面)。有没有办法使用 c:import 或 jsp:include taglib 来包含来自 jaxrs 注释类的 Viewable 响应?例如给定类

有没有办法将它的计算 html 包含在一个 jsp 中

或一个

0 投票
2 回答
3272 浏览

java - JAX-RS 将实体作为 JAXB 对象和字符串获取

我有一个接受 JAXB 对象作为请求实体的 JAX-RS Web 服务(使用球衣)。当我们收到错误时,我们想要记录发送给我们的原始 xml 字符串。目前,我只是重新编组 JAXB 对象,但由于我们在这些类中有几个 java 枚举,原始 xml 字符串中拼写不正确的枚举值会丢失,这对于我们的目的来说是不可接受的。

有谁知道将请求实体作为字符串和 JABX 对象获取的方法?我宁愿不编写自定义 MessageBodyReader,并且如果可能的话,我宁愿不尝试获取 JAXB 的 MessageBodyReader。您也可以自由使用特定于球衣的课程。我们使用的是 1.0.x 版本。

0 投票
3 回答
11806 浏览

json - 泽西岛实现 ContextResolver在春天

所以我正在写一个 Spring(2.5( + Jersey(1.1.4.1) 并尝试使用 ContextResolver 创建一个 JSONConfiguration。这是代码:

不幸的是,我的应用程序仍在返回默认映射:

{"id":"1","question":"你的第一只宠物叫什么名字?"}

当我调试应用程序时,它实际上从未命中此代码。这是因为使用了 SpringServlet 吗?这是我的 web.xml 中的 Jersey 配置:

任何人都有类似的设置与 JSONConfiguration 工作?

0 投票
5 回答
42457 浏览

java - 使用 Jersey 将对象传递给 REST Web 服务

我有一个简单的 WS,它是一个@PUT并接受一个对象

我的客户端代码是......

我正在尝试将一个实例传递WolRequest@PUTWeb 服务。尝试执行此操作时,我不断收到 405 错误。

如何通过 Jersey 将对象从客户端传递到服务器?我使用查询参数还是请求?

我的 POJO (WolRequestWolResponse) 都XMlRootElement定义了标签,因此我可以生成和使用 xml..

0 投票
2 回答
8178 浏览

java - 使用 Jersey 的 Java Async REST Web 服务?

我需要实现一个 Java REST Web 服务(我们使用 Jersey 框架),它基本上可以

一个。在返回响应之前阻塞等待某个事件(或轮询事件) b. 提供某种 aysnc 行为以在处理请求时通知客户端。

我正在考虑返回一个 transationID,并有一个 /status 端点,客户端应该轮询该端点以确定请求是否已处理并获得特定结果。

有任何想法吗?