公司的某个Tomcat总是莫名挂掉,进程还活着,但是无法访问。查看日志,显示信息如下:
Jan 22, 2019 4:23:01 AM org.apache.tomcat.util.net.JIoEndpoint createWorkerThread
INFO: Maximum number of threads (200) created for connector with address null and port 9999
看样子是由于创建的资源没有被关闭导致,查看代码发现:
//发送post请求
public static JSONObject apiPostRequest(String url,String method,Map<String,String> paraMap){
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
HttpClient client = new HttpClient();
PostMethod postMethod = new PostMethod(url+"/"+method);
client.getParams().setContentCharset("UTF-8");
for(Map.Entry<String,String> e : paraMap.entrySet()){
System.out.println(e.getKey()+"/"+e.getValue());
postMethod.setParameter(e.getKey(),e.getValue());
}
JSONObject resultJson = null;
try {
client.executeMethod(postMethod);
resultJson = (JSONObject) JSONObject.parse(postMethod.getResponseBodyAsString());
} catch (IOException e) {
e.printStackTrace();
}
return resultJson;
}
原来是method没有关闭导致的,在try块中加入finally,关闭连接即可:
finally{
postMethod.releaseConnection();
}