私のデバイスには、POST HTTP/1.0 要求を送信するための UBlox (ハードウェア コンポーネント) があります。
Tomcat で受け取るヘッダーは次のとおりです。
POST sc2-http-connector-3.0.0/report HTTP/1.0
Content-Type: application/octet-stream
Host: xx.xx.xx.xx:8080
Connection: TE, close
TE: trailers
Content-Length: 152
リクエストボディは実際にはバイナリデータです。Tomcat はクライアントに 400 を返すだけで、ヘッダーや本文などを出力するだけのサーブレットも実行しません。
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    System.out.println("getMethod :: " + request.getMethod());
    System.out.println("getContentLength :: " + request.getContentLength());
    System.out.println("getContentType :: " + request.getContentType());
    System.out.println("getProtocol :: " + request.getProtocol());
    System.out.println("getRemoteAddr :: " + request.getRemoteAddr());
    System.out.println("getRemoteHost :: " + request.getRemoteHost());
    System.out.println("getRemotePort :: " + request.getRemotePort());
    System.out.println("getRemoteUser :: " + request.getRemoteUser());
    printHeaders(request);
    printByteStream(request.getInputStream());
    System.out.println("------------- parts, if any -------------");
    for (Part part : request.getParts()) {
        System.out.println("size :: " + part.getSize());
        System.out.println("contentType :: " + part.getContentType());
        System.out.println("name :: " + part.getName());
        printHeaders(part);
        printByteStream(part.getInputStream());
    }
    response.setStatus(HttpServletResponse.SC_OK);
}
ヘッダーの問題ではないようです。データに何か問題があるはずだと思います。それでも、Tomcat が 400 を返し、サーブレットに制御を渡さないのはなぜですか? どうすればこれをデバッグできますか?