Connection Jersey客户端打开的连接太多
我的jersey rest api和客户端出现了一些问题 以下是im在服务器端使用方法的方式:Connection Jersey客户端打开的连接太多,connection,client,jersey,jax-rs,Connection,Client,Jersey,Jax Rs,我的jersey rest api和客户端出现了一些问题 以下是im在服务器端使用方法的方式: @POST @Path("/seed") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response addSeed(Seed seed) throws InterruptedException { if (!Validator.isValidSeed(seed)) {
@POST
@Path("/seed")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response addSeed(Seed seed) throws InterruptedException {
if (!Validator.isValidSeed(seed)) {
return Response.status(400).entity("{\"message\":\"Please verify your JSON!\", \"stat\":\"failed\"}")
.build();
}
save(seed);
return Response.status(200).build();
}
如果我在while(true)循环中运行Jersey客户端,则存在打开而不会关闭的连接。所以我遇到了一个问题,我有很多连接打开,我的网络崩溃。所以我不能再使用我的服务器了。连接关闭后,我可以连接到服务器
这是一个客户端:
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI()).path("api/seed");
while (true) {
ClientResponse cr = service.header("Content-Type", "application/json").post(ClientResponse.class, seed);
System.out.println(cr);
cr.close();
我的问题是:
在服务器端,我可以做些什么来防止客户端打开新连接
如何指定最大连接数
我应该如何实现jersey客户端以重用开放连接?我不知道如何在web应用程序级别限制jersey资源。如果您升级到GlassFish EE,您可以将资源设置为EJBs@Stateless@Stateless部署(maxInstances=16) 连接的堆积可能是由于“保持活动”设置造成的。在Tomcat 6中,有两种可用于调整连接器:
我使用tomcat 6,我可以在server.xml中指定maxThreads的数量。但是我不想更改server.xml,有没有办法在ressource或客户端中进行更改?我们公司正在使用Tomcat 6,因此我无法更改服务器。正如我前面提到的,我无法查看Tomcat配置,因为在同一台服务器上运行着其他一些应用程序。