Я пытаюсь использовать аннотацию 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.