问题标签 [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 回答
306 浏览

java - 使用 Twitter 搜索 API

我正在尝试构建一个 Jersey Rest Client 来使用 Twitter 搜索 api。

代码如下:

}

当我运行这个时,我得到一个com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException:Connection timed out: connect exception

我在代码中遗漏了什么还是由于代理设置?我需要合并 OAuth 还是搜索 api 仍然未经身份验证?

谢谢, 萨克希

0 投票
1 回答
2112 浏览

jersey - 什么是 client.setConnectTimeOut 和 client.setReadTimeOut?

有人可以解释为什么使用这个 client.setReadTimeOut 和 client.setConnectTimeOut 超时吗?我对我的泽西客户使用相同的。我为连接和读取设置了 5 秒的超时。出于测试目的,我在我的服务中放置了一个线程睡眠 6 秒。我收到超时异常,但之后我的服务恢复并正常响应。我的要求是设置服务响应超时,如果通过,它应该出来并重试。我还需要设置客户端应该尝试连接的尝试次数。请建议

0 投票
1 回答
188 浏览

https - 如何防止在每个请求上建立 SSL 连接

我使用球衣 1.7。我的客户端通过 HTTPS 与服务器通信。我发现为每个不同的请求(URL)建立了 HTTPS 连接。我想在特定时间段内为多个请求保持相同的连接。我按照https://blogs.oracle.com/enterprisetechtips/entry/sumption_restful_web_services_with中的描述配置客户端,并通过 WebResource.Builder 发送请求

0 投票
1 回答
142 浏览

xml - How to leverage object transformation in Jersey?

I have annotated my POJOs in Jersey and I have test methods like this one:

which accept the JSON flavor of the POJO via a webrequest and return the XML version of the same pojo. Usually I do this to figure out if I have all my objects annotated properly for going back and forth between their expected xml and json formats.

But now I need to perform such a transformation locally inside one of my webservice methods.

Q) How can I leverage the object transformation infrastructure seen above?

I don't want to resort to a hack ... like making a webservice call to localhost and go thru a method which is exposed so that it can transform and return the object to me.


Update#1

One idea that comes to mind is a method like:

where a fake ClientResponse can be used to quickly tap into the existing jersey infrastructure and convert xml to POJO and then again to json ... and the method wouldn't need to be exposed as a webservice for this. But I'm not sure how exactly I can tap into Jersey's pre-existing/pre-configured for MessageBodyWorkers implementation (i call it messageBodyWorkers_singleton just to get my point across) that came for free when the jersey server started. Any ideas on how to auto wire a MessageBodyWorkers reference?

0 投票
3 回答
7490 浏览

java - Jersey 不应使用任何表单参数。例外

我正在使用 jersey 构建 rest webservice,当我添加这个函数时,我得到了这个异常,但是当我删除它时,服务器工作得很好。

代码是

这很奇怪,因为我总是使用这样的路径。我不知道我做错了什么

0 投票
0 回答
1407 浏览

java - 寻找将 Spring 的 ThreadPoolTask​​Executor 与 Jersey 客户端 Web 服务调用一起使用的正确方法

我正在开发一个 Web 应用程序,其中一个要求是调用一个外部 Web 服务,该服务是通过 Jersey 客户端完成的。现在我想在一个单独的线程中调用这个 Web 服务 api,这样 UI 就不会在等待 WS 响应时被阻塞。我还希望能够只记录 Web 服务调用返回的响应,并且不会在任何业务逻辑中使用该响应。为此,我创建了一个 spring 托管 bean,它将包含对 spring 的引用ThreadPoolTaskExecutor。配置如下:

MyClass有一个实现可运行的内部类,用于生成将执行实际 Web 服务调用并记录响应的线程,所有这些都是异步完成的,因此 UI 不会被阻塞。MyClass看起来像这样:

从上面的代码可以看出,尝试是将球衣客户端调用放到 WS 中实现的 run 方法中WorkerClass。然后,Runnable公共方法makeWSCall将在调用时taskExecutor执行一个新WorkerClass对象。我的问题/担忧如下:

  1. 这是解决手头问题的好方法吗?对于使用我们公共领域网站的多个客户来说,它是否会表现良好?
  2. 我没有taskExecutor在 Spring 配置文件中给出任何销毁方法。有必要吗?
  3. 如果 的run()方法WorkerClass抛出异常会发生什么?该线程是否再次从池中可用?
  4. 任何其他问题或更好的想法。

请注意,我尝试使用 Jersey'sAsyncWebResource但我仍然必须从仍会阻止 UI 的帖子中返回的 Future 对象获取响应。此外,我们使用的是非常旧版本的 jersey 客户端 (1.0.2),其中一些较新的功能可能不可用。升级到较新版本目前超出了该项目的范围。

编辑 我在 Spring 中阅读了有关 @Async 注释的信息,我认为这比使用实现可运行的内部类更好。我认为解决方法是将代码传输WorkerClass到中makeWSCall,使用@Async 进行注释makeWSCall,在 spring 配置文件中进行必要的更改。但是,如果在应用程序上下文中定义了另一个执行程序会发生什么。Spring 怎么知道在哪个执行程序中运行我的 @Async 方法?

编辑 我最终使用了 @Async 注释,它工作正常。另一个问题是关闭连接。返回响应后如何确保关闭连接。我可以调用确保连接关闭getEntity的对象(根据球衣文档)。ClientResponse但是,如果在我的网络资源上执行实际的发布请求时或什至出现异常getEntity,连接是否仍会关闭,或者我是否必须明确执行?在我的球衣版本中,没有close(). ClientResponse我应该如何关闭异常连接?

0 投票
1 回答
752 浏览

java - 多个球衣客户端与来自单个 tomcat 服务器的冲突响应

我有一个在 localhost:8080 端口上运行的 tomcat 服务器 当我对服务器运行多个线程/请求时,每隔一段时间,对这些请求的响应就会发生冲突。我的意思是,如果 Alice 和 Bob 发出请求,Alice 可能会得到属于 Bob 的响应,反之亦然。此外,每隔一段时间,Alice 和 Bob 可能都会收到 Alice 的请求。请参见下面的示例。注意:这只发生在 3% 的时间里,但是 2000 多个请求中有 3% 是很多失败的。

  1. 爱丽丝->发送请求1
  2. 鲍勃->发送请求2
  3. 爱丽丝->接收响应2
  4. 鲍勃->接收响应1

我的问题是,为什么会发生这种情况,有没有办法解决它?

也许我缺少配置中的某些内容。


这是一些更多信息,以便我可以涵盖基本问题。我正在使用 Jersey api 客户端与服务器(com.sun.jersey.api.client.WebResource)交谈,该服务器应该是线程安全的(至少它声称是这样)

这不是线程问题。1)我已经验证每个线程都有自己的客户端实例。2)我同时运行多个进程(都是单线程的)并发现相同的结果。

我在服务器端用一个线程运行它们,但冲突仍然发生。

这是我的 catalina 配置(在 server.xml 文件中)

根据我对 HTTP 的了解,每个请求都会打开(或重用)一个新端口。然后,服务器应该将响应发送到请求来自的确切端口。如果是这种情况,则不应发生冲突。

0 投票
1 回答
716 浏览

android - Jersey 客户端需要 Android 中缺少的 XMLInputFactory

我正在尝试在 Android 中将 Jersey 与 Jackson 一起使用,但出现以下错误:

这是我的代码:

我发现 StAX XML 解析器不是 Android 的一部分,但有一些替代方案。我只是不明白为什么 Jersey 想要流式传输 XML,而不仅仅是从服务器获取它并让 Jackson 将它映射到 POJO?

0 投票
2 回答
20822 浏览

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

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

例如:休息资源如下

POJO作为

JSON请求是

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

谁能帮我?

谢谢~阿肖克

0 投票
0 回答
199 浏览

http-headers - Jersey-Apache-Client4:将 Content-MD5 添加到请求中

有没有人想出如何将 Content-MD5 添加到 jersey-apache-client4 过滤器?

在以前的版本中,这可以使用过滤器和适配器来完成。但这似乎不适用于 client4,因为标头似乎是在适配器开始运行之前发送的。

有任何想法吗?