问题标签 [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.

0 投票
3 回答
10203 浏览

java - 解压 GZIP http-response (使用 jersey client api, java)

有人可以告诉我在从一些 Http 调用获得响应时,我需要做什么才能解压缩 GZIP 内容。

要拨打电话,我使用 Jersey 客户端 API,请参阅下面的代码:

然而,输出是 GZIP 的,看起来像:

如果我可以实现以下内容会很好:

  • 能够检测内容是否经过 GZIP 压缩;
  • 如果不是,则在字符串中正常处理;如果,那么解压缩并获取字符串中的内容
0 投票
9 回答
37479 浏览

java - Jersey 客户端 + 设置代理

嗨,我有一个球衣客户端,我用它来上传文件。我尝试在本地使用它,一切正常。但是在生产环境中我必须设置代理。我浏览了几页,但无法得到确切的解决方案。有人可以帮我吗?

这是我的客户代码:

0 投票
1 回答
3105 浏览

java - Jersey:如何获取资源的 URI?

ResourceContext.matchResource(URI)允许我将 URI 转换为资源,但我如何从资源转到其 URI?

0 投票
2 回答
3403 浏览

java - 自定义提供程序无法注入过滤器

我有一个 POJO,我想将它注入到资源和过滤器中:

我为它实现了一个自定义提供程序:

该对象已成功注入我的资源:

但泽西岛未能将其注入我的过滤器:

我猜测差异与以下事实有关,MyFilter即注入是使用遵循线程本地实例的代理完成的 - 这是因为带有注释的字段@Context是在外部类中声明的,它被实例化一次,但它们是用于基于每个请求注入对象。当我filter在调试过程中单步执行时,我可以看到它MyFilter.request指向一个包装了com.sun.jersey.server.impl.container.servlet.ThreadLocalInvoker.

我的自定义提供程序(或其他实现)缺少什么需要对我的过滤器进行自定义注入?

请注意,我目前坚持使用 Jersey 1.1.4.1(对不起)。

编辑:使用 Jersey 1.17,我在启动时遇到异常:

严重:缺少字段的依赖项:private mypackage.MyObject mypackage.MyFilter.myObject

0 投票
4 回答
21718 浏览

java - How to get resource method matched to URI before Jersey invokes it?

I'm trying to implement a ContainerRequestFilter that does custom validation of a request's parameters. I need to look up the resource method that will be matched to the URI so that I can scrape custom annotations from the method's parameters.

Based on this answer I should be able to inject ExtendedUriInfo and then use it to match the method:

But getMatchedMethod apparently returns null, all the way up until the method is actually invoked (at which point it's too late for me to do validation).

How can I retrieve the Method that will be matched to a given URI, before the resource method is invoked?


For those interested, I'm trying to roll my own required parameter validation, as described in JERSEY-351.

0 投票
5 回答
30066 浏览

maven - 如何从 Jersey 1.0 迁移到 Jersey 2.0?

我正在尝试升级到 Jersey 2.0,但遇到了很多麻烦,因为 Jersey 的 groupIds 和 artifactIds 已经完全改变,我在Jersey docs中找不到迁移计划。

这是我的 pom.xml 以前的样子,编译得很好:

这些应该改成什么? 这个不相关的 StackOverflow 问题有点帮助,但我很难找到@Ref注释移动到的位置。


更新

  1. 似乎@Ref不再存在,或者至少在文档中不再提及。现在您使用UriBuilder.
  2. 我在文档中找到了一个非常有用的部分,它回答了我的 maven 问题
  3. HTTPBasicAuthFilter重命名为HttpBasicAuthFilter. 注意大写。
  4. Client client = Client.create();已经成为Client client = ClientBuilder.newClient();
  5. 这个:

    已经成为

    /li>
0 投票
1 回答
947 浏览

jersey - ResourceFilterFactory 和非路径注释资源

(我使用的是泽西岛 1.7)

我正在尝试在我的项目中添加一个 ResourceFilterFactory 以使用注释选择每个方法使用的过滤器。

ResourceFilterFactory 似乎能够过滤使用 Path 注释注释的资源,但它似乎不会尝试为调用的资源的 SubResourceLocator 的方法生成过滤器。

运行时,过滤器工厂只会被以下调用: AbstractResourceMethod(A#doGet) AbstractSubResourceLocator(A#getB)

当我期望为子资源的每个方法调用它时。

我目前在我的 web.xml 中使用以下选项;

我对滤清器厂的理解有问题吗?

0 投票
2 回答
20822 浏览

jersey - 如何在泽西岛读取 JSON 请求正文

我有一个要求,我需要读取作为请求的一部分传入的 JSON 请求,并同时将其转换为 POJO。我能够将其转换为 POJO 对象。但我无法获得请求的请求正文(有效负载)。

例如:休息资源如下

POJO作为

JSON请求是

能够在 WebContentRestResource 的 doLogin() 方法中正确填充 UserVO。但我还需要作为请求的一部分提交的原始 JSON。

谁能帮我?

谢谢~阿肖克

0 投票
2 回答
2328 浏览

java - 带有 Jersey 和 jQuery 的 RESTfull Webservice 得到奇怪的响应

我尝试构建一个 RESTfull Webservice。

在前端,我使用 jQuery 来获取数据。

在后端,我正在尝试使用 www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/ 中的示例

从浏览器调用 127.0.0.1:8080/restEx/rest/json/get 我得到了预期的答案:

但是当我尝试使用 $.get() 获取这些数据时,我没有得到任何答案。查看 Firebug 告诉我,我没有得到数据。

我也试过了

正如我在另一个问题中找到的解决方案现在在 Firebug 中我看到了数据,但 jQuery 仍然没有执行成功函数。我仍然只看到失败功能。

那么我做错了什么?我怎样才能让这些东西工作?

我正在使用 jQuery 2.0.2、Jersey 1.8(我使用来自 jersey.java.net/documentation/latest/getting-started.html#running-project 的 Jersey 2 进行了尝试,结果相同)并且该项目部署在 Tomcat 7 上。

索引.html

pom.xml

web.xml

JSONService.java

轨道.java

0 投票
2 回答
22857 浏览

java - 如何在请求过滤器中获取表单参数

我正在尝试在请求过滤器中获取请求的表单参数:

但是,表格似乎总是空的。HttpRequestContext.getFormParameters()文档说:

获取请求实体的表单参数。

此方法将确保请求实体被缓冲,以便应用程序可以使用它。

返回: 表单参数,如果有请求实体且内容类型为“application/x-www-form-urlencoded”,否则返回不包含参数的实例。

我的资源被注释了@Consumes("application/x-www-form-urlencoded"),尽管在请求过滤器之后它才会被匹配 - 这就是为什么这不起作用?

我尝试进行一些研究,但找不到任何确凿的证据证明这是否可能。有一个 4 年前的讨论,其中 Paul Sandoz 说:

如果您正在使用 Jersey 过滤器或使用 ,HttpRequestContext您可以获得如下形式的参数:[到 Jersey 1.1.1 的链接断开HttpRequestContext.getFormParameters]

我还发现了这个 3 年的关于如何在请求过滤器中获取多部分/表单数据表单字段的讨论。在其中,Paul Sandoz 使用以下代码:

我尝试模拟这种方法Form,但结果request.getEntityInputStream()始终是一个空流。查看的来源getFormParameters,该方法实际上已经在做同样的事情:

在我开始之前,我无法弄清楚是什么在吞噬实体输入流。Jersey 中的某些东西一定在消耗它,因为表单参数稍后会传递到资源方法中。我在这里做错了什么,或者这是不可能的(为什么)?

编辑:这是发送请求的示例:

这是(有些多余的)请求日志记录

以下是该请求的响应标头,包括Jersey Trace

这是(不起眼的)servlet配置:

这是示例资源:

我正在使用泽西岛 1.17。


对于那些感兴趣的人,我正在尝试推出自己所需的参数验证,如JERSEY-351中所述。我的解决方案适用于查询、cookie 和标头参数——表单参数对我不利。