1
我们Jersey客户端从服务器得到下面的异常。Jersey客户端获取状态504(UniformInterfaceException) - 如何配置客户端超时?
Got exception from API:POST http://my-host.com/api/x/y returned a response status of 504 Gateway Timeout, Stack trace: com.sun.jersey.api.client.UniformInterfaceException: POST http://my-host.com/api/x/y returned a response status of 504 Gateway Timeout
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:698)
at com.sun.jersey.api.client.WebResource.access$300(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:574)
at com.g.e.s.i.t.XYZ.callResource(ABC.java:84)
at ...
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
这是客户创建代码:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
provider.setMapper(mapper);
ClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getSingletons().add(provider);
Client client = Client.create(clientConfig);
client.setConnectTimeout(Integer.MAX_VALUE);
client.setReadTimeout(Integer.MAX_VALUE);
return client.resource(url);
所以,我们正在试图安装客户端的最大超时,但于事无补。
任何一个知道如何配置客户端的超时?
可能是更好地处理Tomcat的超时? (怎么样?),虽然我认为它是在一些负载平衡器后面。
伟大工程:)谢谢!虽然最后原因是增加了服务器端的超时:) – urir
@sreemanth pulagam你能解释为什么一个人使用这种阅读和连接超时?我使用我的Jersey客户端。我为连接和读取设置了5秒的超时时间。并且为了测试我已经在我的服务中放了一个线程,持续6秒。我得到一个超时异常,但在此之后,我的服务恢复正常,并给予响应。我的要求是设置服务响应的超时时间,如果它通过,它应该出来,然后再试一次。另外我需要设置客户端尝试连接的次数。 –