【问题标题】:RestOperation exchange rejects cookieRestOperation 交换拒绝 cookie
【发布时间】:2018-02-13 15:26:35
【问题描述】:

我有一个检查 REST 接口健康状态的类。它工作得很好,但我的日志文件充满了这些警告:

2017-08-23 03:59:58.707  WARN 1849 --- [io-13811-exec-5] o.a.h.c.protocol.ResponseProcessCookies  : Cookie rejected [JSESSIONID="14747303A2F23D4BE6DBAE0F282DEA94", version:0, domain:dealersearch.....com, path:/DCRMBroker/, expiry:null] Illegal 'path' attribute "/DCRMBroker/". Path of origin: "/system/healthcheck.jsp"

请求似乎不接受任何 cookie。我不明白发生了什么以及如何接受它们以绕过大量日志消息。

我的健康检查课:

package com......commons.health;

import com.....commons.health.HealthResult.Health;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.web.client.RestOperations;

public abstract class RestHealthCheck extends HealthCheck {
private static final Logger LOGGER =     LoggerFactory.getLogger(RestHealthCheck.class);

public RestHealthCheck() {}

public abstract String getUrl();

public abstract RestOperations getRestOperations();

public HealthResult getHealthResult() {
    HealthResult result = new HealthResult();
    result.setName(this.getName());
    result.setHealth(Health.HEALTHY);
    result.setMessage((String)null);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.TEXT_PLAIN);
    HttpEntity entity = new HttpEntity(headers);

    try {
        this.getRestOperations().exchange(this.getUrl(), HttpMethod.HEAD, entity, String.class, new Object[0]);
    } catch (Exception var5) {
        LOGGER.trace("Health check failed", var5);
        result.setHealth(Health.UNHEALTHY);
        result.setMessage(var5.getMessage());
    }

    return result;
}
}

【问题讨论】:

    标签: java rest cookies


    【解决方案1】:

    请求了一个 URL http://server.example.com/system/healthcheck.jsp,并且响应包含一个为 URL http://server.example.com/DCRMBroker/ 定义的 cookie。

    URL 不同,名副其实的客户端应该拒绝这里发生的导致日志的情况。您提供的信息不足以确定罪魁祸首是谁。可能是 JSP 页面设置了错误的 cookie,也可能是服务器上的转发规则,因此 JSP 页面在内部被转发到不同的资源,而不更改响应中的路径。也可能是您的客户端发生了某种重定向导致这种效果。

    也许我的解释可以帮助您找到原因。如果它在你身边,你可以解决它。如果是另一边的问题,您可能会与他们联系以解决该问题。或者,您可以检查您的客户是否可以关闭此特殊情况的警告,以便您的日志再次变得平静。

    【讨论】:

    • 谢谢。事实证明,最有用的方法是更改​​特定包的日志记录级别。我所做的是使用 logging.level.org.apache.http.client.protocol.ResponseProcessCookies=ERROR 编辑我的 application.properties
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    相关资源
    最近更新 更多