Jetty クライアント (v9) を使用して、Microsoft IIS Web サーバー (5.1) に POST 要求を送信しようとしています。ただし、これにより、クライアント側で EOFException が発生します。Wireshark で調査した結果、リクエストが送信された直後、レスポンスが到着する前に、TCP 接続がクライアントによって閉じられていることがわかりました。
Tomcat サーバーに同じリクエストを送信すると、完全に機能します。
誰かがこの問題を知っていますか、または何がそれにつながる可能性がありますか? 桟橋のバグ?
クライアント:
if (jettyClient != null) {
if (jettyClient.isStarted()) {
remoteHostname = httpAddress.getRemoteUrl().substring(7);
serviceURI = httpAddress.getRemoteService();
logger.debug("post an: " + httpAddress.getRemoteUrlPortService());
Request request = jettyClient.POST(httpAddress.getRemoteUrlPortService());
request.version(httpVersion);
request.header(HttpHeader.CONTENT_TYPE, httpContentType);
request.header(HttpHeader.CONTENT_LENGTH, Integer.toString(msg.length()));
request.header(HttpHeader.HOST, remoteHostname + ":" + httpAddress.getRemotePort());
request.timeout(httpTimeout, TimeUnit.MILLISECONDS); // 20000
request.agent(ApplicationMeta.name + " " + ApplicationMeta.version);
request.method(HttpMethod.POST);
request.header("SOAPAction", soapAction);
request.content(new StringContentProvider(msg));
HTTPIncomingResponseSet set = null;
try {
ContentResponse response = request.send();
} catch (ExecutionException e) {
// ....
}
}