如何从Java Filter调用Spring Controller

时间:2014-08-21 00:57:31

标签: java spring spring-mvc model-view-controller

这是我的场景:我有两个应用程序,都使用Spring MVC。我在其中一个中有一个Filter类,在另一个中有一个Controller类。要求有点奇怪,当向包含过滤器的应用程序发出请求时,此过滤器应调用另一个应用程序中的控制器以“保持活动”会话,因此我需要从过滤器类调用控制器类并传递为参数JSESSIONID。有什么建议吗?

谢谢!

1 个答案:

答案 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
            }
        });