Использование аннотации CookieParam с Spring MVC Controller - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь использовать аннотацию javax.ws.rs.CookieParam для получения файла cookie из HTTP-запроса в метод на моем контроллере.

@Override
public void cookieTest( @CookieParam("testToken") String testCookie, HttpServletRequest request ) {

    Cookie[] cookies = request.getCookies();
    for( Cookie cookie : cookies ) {
        if( cookie.getName().equals( "testToken" ) ) {
            System.out.println( "found testToken" );
        }
    }
}

Однако я получаю следующую ошибку:

Caused by: java.lang.IllegalStateException: No parameter name specified for argument of type [java.lang.String], and no parameter name information found in class file either.
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.getRequiredParameterName(HandlerMethodInvoker.java:729)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestParam(HandlerMethodInvoker.java:488)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:348)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
... 67 more

Контроллер имеет интерфейс, но я добавил аннотацию CookieParam в обоих местах с правильным именем. Если я удаляю параметр testCookie, я могу перебрать request.getCookies() и посмотреть, что файл cookie существует. Есть ли шаг, который я пропускаю?

Я использую Spring 3 и Java 6.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Это объявление одного из моих методов контроллера, который использует куки:

@RequestMapping(value = {"/"}, method = RequestMethod.GET)
public String home(ModelMap model, HttpServletRequest request, 
        @CookieValue(value = "aCookie", defaultValue = "someRandomValue") String aValue) 
0 голосов
/ 10 мая 2018

Вы используете неправильную аннотацию. Вместо этого используйте @CookieValue https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/CookieValue.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...