2017-09-05 52 views
0

我有一個類,它檢查REST接口的健康狀態。它很好,但我的日誌文件充滿了這些警告:RestOperation交換拒絕cookie

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; 
} 
} 

回答

1

的URL http://server.example.com/system/healthcheck.jsp請求和響應載有針對URL http://server.example.com/DCRMBroker/定義一個cookie。

這些URL是不同的,一個值得它名字的客戶應該拒絕在這裏發生的導致日誌的東西。你提供的信息不足以確定誰是罪魁禍首。它可能是JSP頁面設置錯誤的cookie,它可能是服務器上的轉發規則,所以JSP頁面在內部轉發到不同的資源而不改變響應內的路徑。它也可能是您的客戶端上發生某種重定向導致此效應的原因。

也許我的解釋可以幫助你追蹤原因。如果它在你身邊,你可以解決這個問題。如果這是另一邊的事情,你可能會與他們聯繫,以便解決這個問題。或者,您可以檢查您的客戶是否可以關閉此特定情況下的警告,以便日誌再次平靜。

+0

謝謝。原來,最有用的方法是更改​​特定軟件包的日誌記錄級別。我所做的是用logging.level.org.apache.http.client.protocol.ResponseProcessCookies = ERROR編輯我的application.properties – aszel