1

Tomcat サーバーの構成の問題に直面しています。

GoDaddy に証明書を要求し、Apache Tomcat 5.x で同じように構成しました。tomcat5.x\conf\server.xml以下は、 HTTPS 構成のスニペットです。

<Connector port="8443" maxHttpHeaderSize="8192" protocol="HTTP/1.1"
            maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
            enableLookups="false" disableUploadTimeout="true"
            acceptCount="100" scheme="https" secure="true"
            keystoreFile="/path/to/tomcat.keystore" keystorePass="xxxxxxxxx"
            clientAuth="false" sslProtocol="TLS" SSLEnabled="false"/>

https://www.exampleserver.com:8443/servletname正常に使用して、サーバーにデプロイされたサーブレットにアクセスできます

現在、HTTP 本文の JSON データを使用して HTTP POST 要求を同じサーブレットに送信しようとしています。POST データをサーブレットに記録しようとしていますが、POST データが空であるか、使用できません。

doPost以下は、次のメソッドでPOST データをログに記録するためのコード スニペットです。Servlet

    // Respond with OK and status 200 in a timely fashion to prevent redelivery
    response.setContentType("text/html");
    Writer writer = response.getWriter();
    writer.append("OK");
    writer.close();

    // Get the notification object from the request body (into a string so we
    // can log it)
    BufferedReader notificationReader =
            new BufferedReader(new InputStreamReader(request.getInputStream()));
    String notificationString = "";

    // Count the lines as a very basic way to prevent Denial of Service attacks
    int lines = 0;
    while (notificationReader.ready()) {
        notificationString += notificationReader.readLine();
        lines++;

        // No notification would ever be this long. Something is very wrong.
        if (lines > 1000) {
            throw new IOException("Attempted to parse notification payload that was unexpectedly long.");
        }
    }

    LOG.info("got raw notification " + notificationString);

Log.infoステートメントは常に出力さ"got raw notification "れます。これは、データが利用できなかったことを意味します。

興味深い部分は、Servletが展開されている場合、または HTTPS ではなく HTTP を使用してアクセスしている場合に機能することです。

アップデート

HTTPとHTTPSでcurl(JSONデータ)を同じように試しましたServletが、両方では機能しません。ローカルサーバーでは動作しています。

正直なところ、私は Apache Tomcat サーバーと SSL 証明書を構成する経験があまりありません。GoDaddy が提供する構成手順に従い、もちろん Google の助けを借りました。

4

0 に答える 0