问题标签 [jersey-1.0]
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.
java - 匹配任何路径的 Jersey 资源
我正在使用Jersey v1.x和Guice Servlet。我想要做的是绑定一个匹配any @Path
的 Jersey Resource ,这样我就可以使用 Jersey 来响应 404。
我正在寻找这样做,因为我的 servlet 由不同的组件组成(例如,/api
位于/
.ServletModule
小服务程序:
- 在我的
ApiServletModule
:serve("/api").with(GuiceContainer.class, conf)
- 在我的
WebUiServletModule
:serve("/").with(GuiceContainer.class, conf)
/api
在此设置中,我想从每个负责的子项目的代码库中为 webapp (或)的每个部分定义 404 响应主体的外观/
,而无需重新实现 Jersey
到目前为止,我已尝试绑定匹配@Path("/")
,@Path("*")
和的资源@Path("/*")
,但是当我请求时,这些资源似乎都没有被拾取/some/path/that/doesnt/exist
servlets - Jersey & Guice:如何为每个 ServletModule 指定基本路径?
问题(s):
- 如何定义 Jersey 资源和
ExceptionMapper
s,使其仅响应对特定路径子集的请求? - 我怎样才能做到这一点,而不必提前决定以后要在什么基本路径下托管它们?
- 如何做到这一点,以便我可以
war
通过组合库创建单个库,每个库都为 Web 应用程序的特定基本路径定义资源?
背景:
我有一个 Guice + Jersey v1 webapp,它ServletModule
从两个不同的依赖项(jar
s)加载两个 s。
其中一个定义了其他 API 端点的资源(例如@Path("/purchases")
, @Path("/payment-methods")
),另一个定义了 Web UI 的资源(例如@Path("/")
, @Path("/products")
)。前者尝试将其 Jersey 资源绑定到
基本路径 ( ),
而后者对基本路径 ( ) 进行等效的操作。API以 JSON 错误对象响应,而 Web UI在 Freemarker 的帮助下生成 HTML 响应。ServletModule
"/api/"
serve("/api/*").with(GuiceContainer.class, conf);
"/"
serve("/*").with(GuiceContainer.class, conf);
ExceptionMapper
ExceptionMapper
ExceptionMapper
然而,这种组合的结果——API 和 Web UI jar 都在类路径上——是来自两个依赖项的 Jersey 资源响应具有以“/api/”和“/”开头的路径的请求。
例如,用于/purchases
响应 和 的请求http://example.com/api/purchases
的 http://example.com/purchases
API 资源。同样,Web UI 资源响应和/products
的请求。http://example.com/products
http://example.com/api/products
Jersey 看到两个ExceptionMapper
s 表示相同的异常类型(例如NotFoundException
)这一事实使它只选择一个,而不管请求的路径以什么开头。就我而言,和ExceptionMapper<NotFoundException>
下都响应未知资源请求,这对应用程序的任何部分都不利。/api/
/
jax-rs - MOXy - 强制单元素数组成为对象
我们有一个 Jersey 1.18 jax-rs 服务,它曾经使用 jersey-json 包来支持 JSON。我们正在尝试迁移以使用 MOXy,但不会破坏我们的 JSON 接口。不幸的是 jersey-json 将单元素列表编组为对象,将多元素列表编组为数组。MOXy 默认将所有长度的列表编组为一个数组。我们知道 MOXy 编组的方式更容易让客户端使用,但是我们已经有很多客户端在使用我们的接口,它会破坏接口以开始将单个元素列表编组为数组。有没有办法将 MOXy 配置为将单个元素列表编组为对象而不是数组?
jersey-json 编组单元素列表的方式:
MOXy 编组单元素列表的方式:
我们想要配置 MOXy 来为单元素列表生成前一个序列化。那可能吗?我们使用的是 MOXy v2.5.2。
java - Swagger ui - 查询参数
我正在将 Swagger ui 和 Swagger core (1.3) 用于球衣应用程序。我有某些查询参数,我必须随每个请求发送,例如发布、获取、删除......
我怎么能默认这个?
eclipse - Spring / Jersey / Grizzly 在 Maven 命令行中导致静默测试失败,但在 Eclipse 中成功?
我们有一个 JUnit / Jersey 集成测试,当通过 Maven 从命令行运行时,该测试因“拒绝连接”而失败。但是,当从 Eclipse 运行时,测试通过了。Grizzly 容器似乎有一些错误没有启动,但我找不到任何错误消息或日志,它只是默默地失败。这发生在我们从 Java 7 CentOS 6 环境升级到 Java 8 CentOS 7 环境时。以下是重现此错误的简单测试:
来自maven的错误报告:
java - 如何为 Jersey 1.0 客户端设置自定义 Jackson ObjectMapper
我正在使用 Jersey 1.0 http-client 调用资源并反序列化响应 JSON,如下所示:
现在响应 JSON 有一些新字段,我得到以下异常:
如何将杰克逊的反序列化模式更改为非严格,以便它忽略新字段?
java - Jersey 'NoContent' 响应返回 200 而不是 204
我正在使用 Jersey (1.18) 为我的 WebApplication 构建一个 REST API。在我的代码的一部分中,我有以下代码段。
Status
的一个实例在哪里com.sun.jersey.api.client.ClientResponse.Status;
根据 Jersey DocumentationNO_CONTENT
应该返回一个204代码,而不是这个,http 响应有一个带有200代码的标头。
NO_CONTENT
public static final ClientResponse.Status NO_CONTENT
204 无内容,参见 HTTP/1.1 文档。
我试图将上述代码更改为
但问题仍然存在。作为旁注,使用NOT_FOUND
而不是,按预期NO_CONTENT
返回404标头。
关于“如何返回 204 代码?”的任何建议,这是一个错误还是我做错了什么。
java - JBOSS 没有找到我项目的 Maven 依赖项
我在 JBOSS AS 5.1 中运行一个 MAVEN 应用程序,它具有 jersey-server 依赖项。这是我的 pom.xml 依赖项条目。
很简单,对吧?这是我的 web.xml 项目,它指向这个 jar 中存在的 Servlet 容器。
虽然服务器启动良好,但当我尝试点击配置的@Path 时,我得到了一个ClassNotFoundException
for 。com.sun.jersey.spi.container.servlet.ServletContainer
我使用 Eclipse 作为我的 IDE,我可以清楚地看到该类是在 maven 存储库依赖结构(.m2/repository/com/sun/jersey/...)中生成的。
我对 Maven 有点陌生,所以我确信我一定缺少一些基本的东西,但 JBOSS 似乎没有识别我在 POM 中声明的我的项目的运行时依赖项。任何意见,将不胜感激。
java - 从 Jersey Client 1.x 升级到 Jersey Client 2.x
我正在使用jersey-client-1.9
. 示例代码:
由于该项目已从 更改com.sun.jersey.api.client
为org.glassfish.jersey.client
. 如何实现这一点jersey-client-2.8
?
编辑:
这有效... :)
java - JSON 响应对象具有附加的名称/值对
我正在使用 REST Post 服务(使用 Jersey 1.19)来创建新的会话详细信息。
这是我的代码:
我的请求正文如下所示:
应该返回的 sessionInfo 对象是:
我得到的输出是:
我不明白为什么我会cif:786
在回复的最后得到附加信息。
任何指针?
问候阿里。