问题标签 [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 - Tomcat Context 使用 Jersey 冲突
我正在使用 jersey 创建 Web 服务器
我的项目目录有以下映射
restEndpoint1.java 的外观示例是
所以部署到tomcat时我的url的一个例子是
我的 web.xml 是
现在我必须使用tomcat web UI中的上下文路径将这场战争部署为不同的上下文(我使用的是Tomcat 7)
即我希望网址是
我知道每个上下文都会将所有其余端点暴露给它们,但我并不关心,我只需要以这种方式映射它。我面临的问题是
1)在 web.xml 中,我需要提供一个文件夹名称作为参数,以便成为 root ,但是在这个上下文要求下,我不能这样做。我也不能独立映射到每个java类(我可以吗??)
2)在tomcat UI中如何使用不同的上下文部署我的应用程序,我只能上传战争或给出上下文并在服务器上使用战争的URL
java - 泽西 url 映射错误
我有一个具有以下文件夹结构的 Web 应用程序
restendpoint1.java 就像
我的 web.xml 是:
这使我的网址
有没有办法可以从映射中消除文件夹名称,以便进行映射
如何操作我的 web.xml 来实现这一点。
我需要这样做的原因是,我需要文件夹结构来确保代码的可维护性(而不是将所有内容分组到一个类中并将 web.xml 映射到该类),但我还必须避免foldername
进入映射。
json - Jackson 无法反序列化来自带有 JAXB 的 Jersey 1.x (1.17) 的 JSON 响应
我有一个运行 1.17 的球衣网络服务,并支持通过 @Produces 注释通过 XML 和 JSON 返回响应。我假设它在返回 JSON 响应时默认使用 JAXB,但我无法确认。截至目前,我现有的客户也使用相同的 JAXB 序列化器/反序列化器。我想创建一个使用 Jackson 而不影响现有客户端的新客户端。
JAXB JSON 响应与 Jackson for Maps 不兼容。使用 JAXB 的地图的 JSON 格式为
杰克逊无法解析这一点。有没有办法让杰克逊解析这个 JSON?
另一种尝试:将球衣换成杰克逊
这不是首选选项,但我尝试将“com.sun.jersey.api.json.POJOMappingFeature”设置为 true 以允许它使用 Jackson 进行 JSON 序列化/反序列化,但是服务最终返回 500 秒响应而不记录任何异常. log4j 记录器级别设置为 TRACE。我启用了 ContainerRepsonseFilter 以确认响应中的 500 秒,令我惊讶的是,它记录了成功的 2xx 响应。我的猜测是问题发生在堆栈的某个地方,但我不知道在哪里。
java - 从 HTML 调用 REST Web 服务
以下 URL 以 XML 形式返回结果:
.../SampleRest/ServiceProvider2/InchToFeet?i=2
这很好,但是当我尝试使用 tomcat 服务器运行 HTML 文件时,我得到了错误:
未找到网页 404 html 文件未在使用 jersey 的 RESTful Web 服务中运行
java - 使用 guice,我如何配置 Jersey 的媒体类型映射?
我有 Guice 配置 Jersey,它工作得很好。到目前为止,这是我正在做的事情:
我有一个非常简单的 ResourceConfigClass,它看起来像这样:
但是,我不知道如何配置 Guice 以使用我制作的这个 ResourceConfigClass。如果bind
是这样,我会在启动时收到此错误:
在我使用 Guice 之前,我可以通过将它放在我的 web.xml 中来使用这个类:
不过,我不知道如何在 中设置该属性GuiceServletConfig
。当我使用带有 guice 的 jersey 时,如何设置媒体类型映射?
java - 我在一个对象上有一个重载的设置器,我怎么能告诉杰克逊忽略其中一个?
我正在使用com.sun.jersey.api.json.POJOMappingFeature
设置为 true 的 Jersey 1.17,并且我正在发布一个如下所示的对象:
我的资源有这个方法:
我的客户端单元测试是这样写的:
这两个测试都失败,并显示一条消息“postByteArrayWithOverloadedSetterObject 返回了 204 No Content 的响应状态”并且服务器正在记录“数据为空!” 对于每个。为什么不通过网络对字节数组数据进行序列化?我将其作为 JSON 发送。
如果我注释掉@XmlTransient
/@JsonIgnore
注释,我会收到此错误:“java.lang.RuntimeException:属性“数据”的设置器定义冲突”。
在我的实际情况下,我无法轻易修改ByteArrayWithOverloadedSetterObject
. 但是由于这只是一个测试,如果我重命名第二个 setter 并且对象变成这样,我可以看到一切正常:
由于我无法更改 的 API ByteArrayWithOverloadedSetterObject
,还有其他解决方法吗?
redirect - Jersey 1.17:当不是 isUserInRole 时重定向(redirect-on-403)
我们使用 Jersey 1.17 并通过实现 SecurityContext#isUserInRole(role) 方法检查是否允许用户访问资源。
我们需要将具有特定角色的用户重定向到特定页面,以防用户无权访问特定资源。基本上,我们想做一个 403 重定向。
我尝试在过滤器中执行此操作,但我不确定如何从那里获取 SecurityContext 以及终止过滤器链和重定向的正确方法。
rest - Jersey 1.18.1 在 Jboss 7.1.1 final 上部署时无法选择我的宁静服务
我有一个非常令人困惑的问题。我有一个由 gradle 构建的 eclipse Restful 服务项目。我可以在 Tomcat 7.0.54 中成功构建和运行我的应用程序,从 Eclipse 中并直接在 Tomcat 的 /webapps 文件夹中部署战争。
但是当我在 Jboss 7.1.1 Final 中部署相同的战争时,它给了我以下错误。
此外,当我将这场战争解压到一个文件夹并将该文件夹部署到 Jboss 中时,它可以工作!如果我直接从 Eclipse 在 Jboss 中运行我的项目,它也可以工作。但是,如果我将项目导出为战争(来自 eclipse)并将该战争文件部署到 Jboss,它再次给我同样的问题。
当我深入研究 Jersey 的代码时,我发现com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner
无法从战争中选择我的类文件。
请帮助我们解决这个问题。
java - Jersey 1.0 JAX RS:如何将 uri 字符串路径转换为 REST 方法调用?
我对 Jersey JAX-RS 还很陌生,所以请多多包涵。我们试图通过让客户端提交一个它通常单独创建的 uri 路径的 JSON 列表来向我们的 REST API 添加批处理功能。例如:
同样,此列表中的每个字符串都是 REST api 中的路径(或子路径)。该列表将提交到单个路径,例如“/rest/queries”,该路径对应于方法public List<Response> queries(List<String>)
。这个想法是为给定列表中的每个路径执行相应的方法。有没有办法在 Jersey 1.0 JAX-RS 上做到这一点?或者,有没有办法配置 JAX-RS,它会自动执行批量 GET 请求?
我们的目标是让批处理请求包含多个彼此完全不同的 GET 请求,类似于我上面的示例。