问题标签 [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.
jax-rs - 在 JAX-RS 中如何控制调度?
我正在用 RESTeasy 编写一个 RESTful Web 服务。这是 JAX-RS 的实现。您可以使用单个 @Path 注释来注释类或方法。正则表达式用于获取路径参数。例如
匹配所有以 "/foo" 开头、以 "/bar" 结尾以及介于两者之间的所有模式。介于两者之间的任何内容都分配给名为 varname 的参数。
一些框架(如 Django)有一个正则表达式和方法的列表,这些正则表达式和方法将按顺序尝试。例如 /john/q/smith、/john/{.*}/smith、/john/{.*}/{.*}。"/john/henry/smith" 匹配第二个和第三个,但第二个将被调度,因为它是找到的第一个匹配项。
这在 JAX-RS 中是否可行,或者类和方法没有固有的顺序?对于 /john/{.*}/{.*},您是否必须编写一个表示 /john/anything/anythingbutsmith 的正则表达式?每次更改其他文件时,您都必须更改它。
java - cxf.jaxrs:使用 JAXRSServerFactoryBean 时出现 IllegalArgumentException
在单元测试中设置 JAXRS 测试服务时遇到了以下问题。这是代码(取自 AbstractJUnit4SpringContextTests 派生的测试类):
我正在将 XML 测试文件提供给服务。CXF 会无礼地尝试将 xml 包装到 javax.xml.bind.JAXBElement 中,调用服务,并因 IllegalArgumentException(在反射 API 中)而失败,因为服务当然不接受 JAX-RS 特定的元素,而是我之前在 XSD 中定义的 SearchRequest 元素。
但是,当我将以下行插入到我的 spring 上下文中时,一切都很好:
还有人看到这个吗?
jax-rs - JAX-RS 接口标记和@Context 注入
考虑以下简单的 RESTEasy (JAX-RS) 服务:
我想在接口而不是类上定义 JAXRS 细节,这样我就可以使用漂亮的客户端框架,即:
一切都很好,除了我想介绍一些 RESTEasy 的上下文注入,即:@Context。天真地,考虑以下几点:
这显然没有意义,因为这个@Context 注入是正交的并且不属于接口(此外,即使我可以从客户端的角度克服这个接口的丑陋并传递 null,目前也存在一个错误防止这来自工作:RESTEASY-311)
如何使用接口 JAXRS 标记(并因此利用好的 RESTEasy 客户端框架)并同时访问正交 @Context 注入?
java - jersey Viewable 和 c:import 标签库
给一个资源类,它有一个方法,它返回一个 Viewable(或通常任何 jsp 页面)。有没有办法使用 c:import 或 jsp:include taglib 来包含来自 jaxrs 注释类的 Viewable 响应?例如给定类
有没有办法将它的计算 html 包含在一个 jsp 中
或一个
rest - 如何通过 REST 和 JAX-RS 对父子实体进行建模
我正在研究基于 REST 的 API,并且在弄清楚代表父/子关系的规范方法时遇到了一些麻烦。(我在CXF中编写bean,使用JAX-RS和JAXB。我从CXF提供的基本示例开始)
我的问题是假设你有一个 Foo 和一个 Bar。Foo 和 Bar 存在 1-N 关系,即 1 Foo 有许多 Bars。我的问题是,找出 Bars a Foo 有什么的规范方法是什么?访问 Foo 拥有的 Bar 资源的规范方法是什么?
我发现例如我可能会在以下位置列出 Foos:
并在单个 foo 上操作:
放置/更新/删除http://xxx/fooservice/foo/ {fooid}
但是我如何列出 Foo 121 的 Bars 呢?我如何访问它们?我注意到默认的 JAXB 编组器似乎不输出集合只是 bean 的属性,所以如果 Foo 是:
JAXB 输出如下内容:
<foo><id>123>/id><name>foo name</name></foo> <--注意没有bars属性
这是有问题的,因为无法合理地期望客户知道 Foo 有 Bars,除非它“只知道”(这对我来说似乎很糟糕)。因此,虽然我可以想象使用以下方法获取条形列表:
获取http://xxx/fooservice/foo/121/bars
如果实体的输出没有说明,客户如何知道 Foo 有 Bars?现在假设客户端确实获得了列表,那么实体操作似乎类似于:
获取/删除/更新http://xxx/fooservice/foo/121/bar/435
这将访问 Foo 121 拥有的 Bar 435。
tomcat - 在 JAX-RS 资源中获取 ServletContext
我正在玩 JAX-RS,部署在 Tomcat 上。基本上是:
有什么方法可以ServletContext
在我的 JAX-RS 资源中获取?
java - JAX-RS 将实体作为 JAXB 对象和字符串获取
我有一个接受 JAXB 对象作为请求实体的 JAX-RS Web 服务(使用球衣)。当我们收到错误时,我们想要记录发送给我们的原始 xml 字符串。目前,我只是重新编组 JAXB 对象,但由于我们在这些类中有几个 java 枚举,原始 xml 字符串中拼写不正确的枚举值会丢失,这对于我们的目的来说是不可接受的。
有谁知道将请求实体作为字符串和 JABX 对象获取的方法?我宁愿不编写自定义 MessageBodyReader,并且如果可能的话,我宁愿不尝试获取 JAXB 的 MessageBodyReader。您也可以自由使用特定于球衣的课程。我们使用的是 1.0.x 版本。
java - RESTEasy 客户端框架身份验证凭据
RESTEasy(一个 JAX-RS 实现)有一个很好的客户端框架,例如:
您如何向该客户端提供 HTTP 身份验证凭据?
java - JAX-RS,地图到 JSON 没有开销?
我正在使用 JAX-RS 在 Java 中创建安静的 Web 服务。我在生成的 JSON 中开销很大。
数据类:
服务:
产生:
我希望它产生:
实现这一目标的最简单方法是什么?我可以自由地重新定义我的数据类,但我无法提前知道地图的键或大小。
java - 使用 JAXB 将 JSON 编组/解组到 Java 类
我使用 JAX-RS 和 JAXB 注释成功地将 POJO 编组为 JSON。
问题是,当我尝试使用它来取消编组我的请求时,它不起作用。据我在文档中看到的, JAX-RS 可以自动将 application/json 字符串编组和解组回 java 类。
我是否需要为此创建自己的 MessageBodyReader,或者框架支持此功能而不使用 Jackson 库?