0

私は残りのサービス プロジェクトをテストするのが好きですが、適切な方法で動作していないようです。とにかく自分で修正できますが、確実にデバッグ情報を取得する必要があります。( Status Code: 400 Bad Request, description The request sent by the client was syntaxally illegal. が表示されます。)

OK、pomファイルで次の構成でtomcat7-maven-pluginを使用しました

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <port>9090</port>
                <httpsPort>9443</httpsPort>
                <!-- <path>/${project.build.finalName}</path> -->
                <contextFile>${basedir}/src/main/resources/context.xml</contextFile>
                <keystoreFile>${basedir}/src/main/resources/server.jks</keystoreFile>
                <keystorePass>123456</keystorePass>

            </configuration>
        </plugin>

log4j ファイルは /src/main/resources/ フォルダーに保存され、通常どおり classes フォルダーにコピーされます。

のように見える

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d +++ P R O D +++ [%t] %c: %m%n" />
        </layout>
    </appender>

    <logger name="org">
        <level value="error" />
    </logger>
    <logger name="org.springframework.web">
        <level value="DEBUG" />
    </logger>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

プラグインが必要とする同じフォルダーに content.xml もあります

<?xml version='1.0' encoding='utf-8'?>
<Context cookies="true" >
  <!-- disable session persistence: -->
  <Manager pathname="" />
</Context>

mvn clean tomcat7:run-war でアプリケーションを起動しましたが、リクエストが正しくない理由が出力されず、エラーはまったく出力されません。

私は運がない別のアプローチも試しました:

  • ResponseStatus アノテーションの有無にかかわらず、クラスに ExceptionHandler を追加します。

     @ExceptionHandler
     @ResponseStatus(HttpStatus.BAD_REQUEST)
     public void handle(HttpMessageNotReadableException e) {
          logger.warn("Returning HTTP 400 Bad Request", e);
     }
    
  • プラグイン構成にlog4j依存関係を追加します。それらはプロジェクトの依存関係にもあります。

  • log4j.xml を WEB-INF フォルダーに移動しました
  • mvn -X clean tomcat7:run-war から始めました
  • pom.xml ファイルのプラグイン構成にリソース構成を追加します

                <resources>
                    <resource>
                        <includes>
                            <include>**/log4j.xml</include>
                        </includes>
                    </resource>
                </resources>
    
  • commons-logging と slf4j の依存関係も確認し、それらを除外しました

これらのすべてのアクションは、残りのサービスのポスト コールのロギングを有効にしません。ああ、私はFirefoxのrestclientとcurlを使用しました。別のスレッドで見つけたように、curlの引用符もエスケープしました。

別のロガーを有効にすると、そこで何が起こっているのかという情報を取得するだけでも問題ありません。

4

2 に答える 2