这是我的场景:我有两个应用程序,都使用Spring MVC。我在其中一个中有一个Filter类,在另一个中有一个Controller类。要求有点奇怪,当向包含过滤器的应用程序发出请求时,此过滤器应调用另一个应用程序中的控制器以“保持活动”会话,因此我需要从过滤器类调用控制器类并传递为参数JSESSIONID。有什么建议吗?
谢谢!
答案 0 :(得分:0)
最后,我使用AsyncRestTemplate实现我的目标,从过滤器调用控制器是这样的:
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("Cookie", "JSESSIONID=" + sessionId);
HttpEntity<String> httpEntity = new HttpEntity<String>(null, httpHeaders);
String controllerUrl = CONTROLLER_URL;
ListenableFuture<ResponseEntity<String>> responseEntityListenableFuture = restTemplate.exchange(controllerUrl, HttpMethod.GET, httpEntity, String.class);
responseEntityListenableFuture.addCallback(new ListenableFutureCallback<ResponseEntity<String>>() {
@Override
public void onSuccess(ResponseEntity<String> stringResponseEntity) {
// Nothing to do
}
@Override
public void onFailure(Throwable throwable) {
// Handle your error
}
});