Citrus框架“ [520]没有匹配常数”-自定义HTTP状态代码

时间:2018-08-02 12:30:17

标签: java http-status-codes citrus-framework spring-framework-beans

当我尝试在服务器上使用API​​运行我的Citrus v.2.7.5测试时出现问题,该服务器会向我的柑橘客户端响应自定义的HTTP状态代码。我的测试引发了IllegalArgument异常,因为服务器使用520 Http状态代码响应了一条消息。

我认为问题出在Citrus使用的spring-web v.4.3.14框架。 spring-web包含一个HttpStatus类,其中包含有效的Status-Codes枚举。当您尝试使用无效的自定义状态代码创建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状态代码,但citrus可以在此较旧版本中使用。... 也许我错了,并且将异常抛出了其他地方,但这与自定义的http状态代码有关,因为如果我们得到200个HTTP状态代码,那么一切正常。

有人知道如何用柑橘来解决这个问题吗?

0 个答案:

没有答案