0

カスタマイズされた HTTP-Status-Codes をシトラス クライアントに応答するサーバーで API を使用して Citrus v.2.7.5 テストを実行しようとすると問題が発生します。サーバーが 520 Http-Status-Code でメッセージに応答するため、テストで IllegalArgument 例外がスローされます。

問題は、Citrus で使用されている spring-web v.4.3.14 フレームワークが原因だと思います。spring-web には、有効な Status-Code の列挙を持つ HttpStatus クラスが含まれています。「有効」ではないカスタムステータスコードの valueOf() を作成しようとすると、エラーがスローされます。

/**
 * Return the enum constant of this type with the specified numeric value.
 * @param statusCode the numeric value of the enum to be returned
 * @return the enum constant with the specified numeric value
 * @throws IllegalArgumentException if this enum has no constant for the specified numeric value
 */
public static HttpStatus valueOf(int statusCode) {
    HttpStatus status = resolve(statusCode);
    if (status == null) {
        throw new IllegalArgumentException("No matching constant for [" + statusCode + "]");
    }
    return status;

}

spring-web の新しいバージョン (5.x) では、このエラーは修正されており、カスタムの http-status-codes を使用できますが、citrus はこの古いバージョンで動作します...おそらく私が間違っていて、例外が別の場所でスローされます。 200 の HTTP-Status-code を取得すると、すべて正常に動作するためです。

柑橘類でこの問題を解決する方法を知っている人はいますか?

4

0 に答える 0