问题描述
我有以常规方式创建的基于cxf的Web客户端:
proxy = JAXRSClientFactory.create(host,clientInterfaceClass,providers,isThreadSafe = true);
在每秒一次加载数百个请求的过程中,我遇到异常:
Caused by: java.net.socketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:851)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1593)
...
关键点在于,这种故障几乎是在发起请求后的1-2ms内立即发生的,因此很可能没有与Nginx的实际连接,更不用说服务本身了(日志没有证据表明我们已经到达任何服务器)
以线程安全的方式创建代理,并在每次请求时重置客户端:
WebClient.client(service).reset();
发布Java simple code: java.net.SocketException: Unexpected end of file from server 尽管我不认为这是我的情况,因为它失败的速度非常快,但它对此异常的本质给出了相当全面的解释。
我编写了一个测试,该测试可模拟带有许多并行请求的产品,例如负载和轰击服务。不走运,w / p
因此,问题是:还有其他可能引发此异常的情况吗?也许打开的文件数之类。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)