问题标签 [jersey-client]

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 投票
0 回答
1511 浏览

java - 从 WADL 自动生成 REST 客户端

是否有任何工具可以从 WADL 自动生成命令行 REST 客户端,类似于xmlBeans可以从 WSDL 生成 Bean 类?

我试过cxf-wadl2javawadl2java

cxf-wadl2java:这会在生成的代码中引发很多错误,实际上是在生成生产者类而不是消费者类。

wadl2java:即使在修复了存储库之后,我也无法让这个东西工作。除了该特定页面上的内容外,会出现很多错误并且根本没有文档。

0 投票
2 回答
2206 浏览

java - Jersey Test @Autowired 测试类中的字段为空

我有一个小问题。我认为这是一个典型的问题。但是,我找不到很好的例子。我的应用程序使用的是泽西岛。我想通过客户端测试控制器作为测试。控制器有私有字段 - StudentService。当我调试测试时,我看到该字段为空。这会导致错误。我需要注入这个领域。我试过这个:我的控制器

我的 JUnit 测试类:

我猜,这个问题出在测试课上。因为,当我在测试中运行我的应用程序时,我可以直接请求学生并且一切正常。但是当我测试类时,控制器的内部字段没有设置。如何修复这个错误?感谢您的回答。

这是在我的 config.xml

0 投票
1 回答
8436 浏览

json - How to convert JSON to POJO

Anyway to create a Java POJO template from a JSON string? I'm using Jersey

0 投票
1 回答
1361 浏览

java - 如何使用 Jersey Client 2.2.x 取消挂起的异步请求并取消注册调用回调?

我有一个简单的 REST 服务,它带有一个 sleep 方法,它除了在指定的时间内以毫秒为单位休眠,然后返回一个 No Content 响应。我的 RESTTest 类尝试首先调用http://localhost:8080/myapp/rest/sleep/7500(休眠 7.5 秒)但只等待 5 秒。5 秒后,它取消接收到的 Future(试图取消挂起的请求)并调用http://localhost:8080/myapp/rest/sleep/5000(休眠 5 秒)并等待 5 秒。

现在我希望看到“COMPLETED”字符串只打印一次,并且“收到响应”。字符串也只打印一次。但是,“COMPLETED”字符串会打印两次!

我在这里想念什么?

谢谢,

0 投票
8 回答
12893 浏览

unit-testing - 无法模拟 Glassfish Jersey 客户端响应对象

我在创建用于单元测试的模拟响应对象时遇到问题。我正在使用org.glassfish.jersey.core.jersey-client2.3.1 版来实现我的 RESTful 客户端和mockito1.9.5 版来帮助我处理模拟对象。这是我的测试代码:

执行时出现问题this.client.getAll();。这是该方法的代码:

请注意,我正在使用手动创建的响应来模拟 this.simpleClient.getAllWithResponse() 方法。当它到达response.readEntity(resourceListType);指令时,Jersey 会抛出以下异常:java.lang.IllegalStateException - Method not supported on an outbound message.. 经过大量的研究和调试后,由于某种原因,当我使用响应构建器创建一个响应时,例如Response.ok(expectedResource, MediaType.APPLICATION_JSON).build();它将它创建为 OutboundResponse 而不是InboundResponse。后者是唯一允许使用该Response.readEntity()方法的人。如果是OutboundResponse,则抛出异常。

但是,我找不到将手动创建的响应转换为 InboundResponse 的任何方法。所以我的测试注定要失败:(。你们知道我能在这里做什么吗?我不想用 Mockito 模拟 Response 对象,因为我认为它可能是代码味道,因为它违反了法律得墨忒耳。真的,我在这里没有想法。这样的事情应该简单明了。

0 投票
1 回答
239 浏览

java - CXF 2.7.7 不支持的媒体类型:从 2.7.0 开始:当我们发布空请求时

我正在使用 Jersey-client 将 .post() 发送到 URL,CXF 在另一边。

客户端代码就是这样...

现在使用 CXF 2.7.0,如果“请求”对象为空,那没关系,另一端的服务不需要有效负载,这很好。

对于 CXF 2.7.7,如果“请求”对象为空,那么我会收到由“com.sun.jersey.api.client.UniformInterfaceException:客户端响应状态:415”引起的 InvocationTargetException

415:是不受支持的媒体类型。

所以我认为由于它没有有效负载,它无法确定它的媒体类型和错误。

我被困在如何解决这个问题上。我可以只发布一个空的 xml 正文,但如果有更好的方法会很好。

有任何想法吗?

谢谢杰夫

0 投票
2 回答
35354 浏览

java - 如何解决 MessageBodyWriter not found for media type=multipart/form-data 错误

如何为简单的多表单帖子配置提供程序。任何建议/指针将不胜感激。

堆栈跟踪:

pom.xml 依赖项:

编码:

0 投票
1 回答
2815 浏览

java - 重用授权标头以防止 Jersey 客户端出现多个 407 代理身份验证挑战

我正在使用 Jersey Client 2.0 库(带有 Apache HttpClient v4.2.5 传输连接器)来使用 RESTful Web 服务。我的应用程序必须支持通过代理服务器与任何基本、摘要或 NTLM 身份验证的连接。我添加了对所有这些类型的代理身份验证的支持,基本上一切都正常工作。

这就是我添加对基本和摘要代理身份验证的支持的方式:

此外,我要连接的 RESTful Web 服务本身也需要基本身份验证,我使用以下方法处理:

但是,我的应用程序的行为并不完全符合我的要求:似乎我发出的每个单独的 HTTP 请求都会导致来自代理服务器的 407 身份验证质询响应。这是一个问题,原因有两个:

  1. 如果我使用 an 提供的实体主体发出POSTorPUT请求(已在上一个请求中成功通过代理服务器进行身份验证)InputStream,则它被视为“不可重复”请求,因此当收到 407 质询时,我得到以下异常:

    我可以通过将实体主体数据从 缓冲到字符串或字节数组中来解决此问题,InputStream以便在收到 407 质询时可以重复请求,但这效率低下并且不能解决问题 2。

  2. 必须复制每个请求,首先触发 407 质询,然后重复必要的附加 HTTP 标头以进行代理身份验证,这是非常低效的。我的一些客户端操作涉及对 RESTful Web 服务的大量 HTTP 请求,因此这种额外的流量和延迟是不幸的。

Client我的期望是,一旦 Jersey 客户端第一次成功通过代理服务器进行身份验证,使用同一实例发出的所有后续请求将自动包含必要的Proxy-Authorization标头,以防止任何进一步的 407 挑战。根据此链接,这似乎是 HTTP 1.1 的标准方法:

代理服务器在 407(需要代理身份验证)响应中向客户端发送包含质询的 Proxy-Authenticate 标头。客户端然后重复初始请求,但添加一个 Proxy-Authorization 标头,其中包含适合挑战的凭据。成功代理身份验证后,客户端通常会在每个后续请求中向代理发送相同的 Proxy-Authorization 标头,而不是等待再次受到挑战。

所以我的问题是我需要将哪些配置设置应用于 Jersey 客户端或底层 Apache HttpClient 传输层以启用此行为?我已经看到其他各种建议手动添加Proxy-Authorization标题的帖子,但如果可能的话,我宁愿避免这种解决方法。我还理想地寻找一种可以与我正在使用的所有三种类型的代理身份验证(基本、摘要和 NTLM)一起使用的解决方案。

如果无法阻止所有这些额外的 407 挑战,我还希望在以“可重复”方式从本地文件 POST 或 PUT 数据时提供最佳方法的建议,以防止出现 407 代理身份验证挑战之后的问题。

0 投票
2 回答
461 浏览

java - 我们可以为 Apache CXF webservice 使用 jersey 客户端吗?

我们有一个使用 apache CXF 的 REST 服务。我们可以使用 Jersey 客户端调用此服务吗?

有什么错误吗?

0 投票
1 回答
320 浏览

eclipse - 在 Eclipse 插件中注入 Jersey 客户端

我正在开发一个 Eclipse 插件。我正在尝试将 Jersey 客户端(jersey-client-2.3.1)绑定到这个插件。

据我所知,我需要 HK2 进行依赖注入。当我从 Eclipse 或 JUnit 测试运行类时,这很好。

当我想将项目作为“Eclipse Application”运行时,问题就来了。Eclipse 的新实例打开,然后它无法解析/创建 Jersey 客户端的实例。通过 ClientBuilder.newClient() 调用会产生异常,并尝试使用 @Inject 进行注释会产生 null。好像没有上下文。

我应该怎么做才能使它工作?在我运行单元测试的 Eclipse 中,一切正常,因为只有一个(Jersey)lib 提供程序,所以它默认绑定它。如何在 Eclipse 的新实例中做同样的事情?

这是我正在使用的库列表: