问题标签 [jax-rs]

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 回答
633 浏览

jax-rs - JAX-RS 和 JAXB_ENCODING

我正在使用 RestEasy 库来执行 JAX-RS Web 服务。我没有在我的服务方法中实例化 JAXBContext。有没有办法让 JAX-RS 在它返回的 XML 中包含“<?xml version...?>”标头字符串?这是我的代码中的示例服务方法:

0 投票
11 回答
32276 浏览

java - 使用 Jersey 和 Guice 进行 RESTful 服务的实用建议

从我在网上可以找到的信息来看,Guice + Jersey 整合的最新技术自 2008 年以来一直停滞不前,当时两支球队似乎都陷入了僵局。问题的症结在于 JAX-RS 注释执行字段和方法注入,这与 Guice 自己的依赖注入不能很好地配合。

我发现的几个例子还不足以说明:

  • Iqbalyusuf在 Google App Engine Java 上的 Jersey + Guice 上的帖子受到大量样板文件的影响(手动获取和调用注入器)。我希望绑定和注入应该通过 Guice 注释在幕后进行。

  • Jonathan Curran 的文章使用 Jersey、Guice 和 JSR-250 创建一个 RESTful 服务给了我希望,因为它更新的更多(2010 年),但仅仅展示了如何在 Guice ServletModule 中启动 Jersey 服务。但是,没有任何真正的依赖注入的例子。我想这留给读者作为练习。Curran 的帖子实际上可能是连接 Guice 和 Jersey 的正确第一步,所以我计划从那开始。

  • 诱人的詹姆斯斯特拉坎写道

    JAX-RS 与 Spring、Guice、GuiceyFruit 或 JBossMC 等依赖注入框架配合得很好——你基本上可以选择你喜欢的任何一个。

    但是从从业者的角度来看,我没有看到任何证据是真实的。

我发现缺少的是关于如何结合 JAX-RS 和 Guice 注释的实际示例和解释。例如:

  • 我相信我不能对任何资源使用构造函数注入,因为 Jersey 想要控制它
  • 我不确定是否可以将@Inject 与@PathParam、@QueryParam 等结合使用。
  • 如何在 MessageBodyWriter 实现中使用注入

有没有人有例子,最好是有来源,结合泽西岛和吉斯而不牺牲其中一个或另一个的非平凡应用程序?不管怎样,我都会继续走这条路,但泽西和吉斯名单上的点点滴滴让我觉得我在重复其他人的工作。

0 投票
3 回答
8776 浏览

java - 如何防止“本地事务已经有 1 个非 XA 资源”异常?

我在无状态 EJB 中使用了 2 个 PU,它们中的每一个都在一个方法上调用:

这些方法使用 REQUIRES_NEW 事务注释以避免此异常。当我从 javaFX 小程序调用这些方法时,一切都按预期工作。现在我试图从 JAX-RS webservice 调用它们(我没有看到任何逻辑差异,因为在这两种情况下,ejb 都是在初始上下文中查找的)并且我不断收到这个异常。当我在 glassfish 2.1 连接池中设置 XADatasource 时,我在 em2 上遇到了空指针异常。

任何想法接下来要尝试什么?

问候

0 投票
6 回答
50351 浏览

java - 使用 JAX-RS 将 JSON 查询参数转换为对象

我有一个 JAX-RS 资源,它将其参数作为 JSON 字符串获取,如下所示:

这里使用 JSON 的原因是查询对象在实际用例中可能非常复杂。

我想将 JSON 字符串转换为 Java 对象,在示例中为 dto:

JAX-RS 是否支持从作为查询参数传递的 JSON 到 Java 对象的这种转换?

0 投票
5 回答
24548 浏览

java - 在 Maven 构建的 JAR 中找不到泽西消息正文阅读器

我的应用程序使用 REST (JAX-RS Jersey) 接口。当我在 Eclipse 中运行它时,一切都很好。域对象被注释,我没有使用 XML 文件进行 REST 映射。

现在我使用 maven-assembly-plugin 创建了一个独立的 JAR,它将应用程序和所有依赖项打包在一个可执行的 JAR 文件中。这似乎也有效。

但是当我启动应用程序并从服务器请求一个对象时,Jersey 抱怨说它找不到消息正文阅读器:

任何想法为什么会发生这种情况?

编辑:在我睡了一晚之后,我注意到它抱怨 JSON ......但我只使用 XML 进行序列化。奇怪的。

0 投票
1 回答
8605 浏览

java - 除了 @Produces 注释之外,Jersey (JAX-RS) 如何知道将 POJO 视为特定的 mime 类型?

我看到很多关于泽西岛的例子,看起来像这样:

但后来我无法剖析 Item,以及 Jersey 如何知道如何将 Item 转换为 XML 或 JSON。我见过非常基本的示例,它们只返回构造的 HTML 或 XML 的字符串,这对我来说更有意义,但我错过了下一步。我查看了样本,其中一个很突出(json-from-jaxb 样本),因为该对象标有以下类型的注释:

我正在寻找逐步介绍此“翻译”的教程,或者在此处解释如何将 POJO 翻译为特定 mime 类型的输出。谢谢!

0 投票
2 回答
19802 浏览

java - Spring 3.0 REST 实现还是泽西岛?

我目前正试图弄清楚我将在食物链的上游推荐哪种 JSR-311 实现。我几乎把它缩小到两个选项——Spring 3.0 原生支持 REST——或者使用 Sun 自己的 Jersey(Restlets也可能是一个选项)。

对我来说,实际语法似乎没有太大区别,但可能存在我尚未弄清楚的性能问题。

该服务旨在取代一些重型 EJB 并改为创建一个 RESTful Web 服务。预计负载会相当高,达到每天 10 万用户(最大)的范围,但负载平衡会很严重。

感谢您的所有见解。

0 投票
1 回答
6575 浏览

java - UriBuilder 错误地编码查询参数值?

让我们考虑以下代码示例,其中对路径和单个参数进行了编码...

参数名称:“参数”

参数值:“foo/bar?aaa=bbb&ccc=ddd”(恰好是带查询参数的url)

返回的编码 URL 字符串为:

这个对吗 ?

字符“&”(甚至可能是“?”)不应该在参数值字符串中编码吗?

生成的 URL 会不会被解释如下:

第一个参数 name="param", value = "ar?aaa%3Dbbb" 后跟第二个参数 name="ccc%3Dddd",没有值。

0 投票
7 回答
9029 浏览

java - 如何像 JAX-RS(CXF 和 Jersey)一样使用 JAXB 编组 java.util.List

似乎最新的 JAX-RS 可以处理返回 java.util.List 作为 XMLRootElement 的方法,但普通的 JAXB 不能。我想模仿 CXF 和 Jersey 正在做的事情。

换句话说,我想编组一个列表,就像 CXF 和 Jersey 一样。通常,如果您尝试使用 JAXB 编组列表,则会收到 Root Element 异常。我如何在不必制作包装对象的情况下解决这个问题?

编辑:感谢您提供的许多答案,但我对@XmlElementWrapper 非常熟悉,但这甚至无法模拟 JAX-RS 正在做什么。

JAX-RS 这样做:

现在,如果我序列化一个狗列表:

XML 应该是(JAX-RS 所做的):

所以你可以看到我不想为每个域对象创建一个包装器对象。

0 投票
3 回答
2112 浏览

java - 用 JAX-RS 覆盖 HTTP 方法

今天的浏览器(或 HTML < 5)只支持 HTTP GET 和 POST,但要与 RESTful 通信,也需要 PUT 和 DELETE。如果解决方法不应该是使用 Ajax,则需要隐藏表单字段之类的东西来覆盖实际的 HTTP 方法。

Rails 使用以下技巧:

有没有可能用 JAX-RS 做类似的事情?