Я подписался на этот пост и был создан первым настраиваемым поставщиком для инъекций, LocaleProvider
, который сканирует HTTP-запрос для заголовка Accept-Language . Он отлично работает, если я использую его в ресурсе Джерси:
@Path("test")
@GET
public Response getStatus(@Context Locale locale) {
log.finer("Locale: "+ locale);
Response response = Response
.noContent()
.build();
return response;
}
Но когда я хочу использовать его в ExceptionMapper
, я не знаю, как ввести локаль. Я попытался аннотировать его как переменную-член:
public class MyExceptionMapper implements ExceptionMapper {
@Context
private Locale locale;
@Override
public Response toResponse(MyException ex) {
...
}
}
, но это не удалось при развертывании:
The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for field: private java.util.Locale com.package.MyExceptionMapper.locale
Другие вещи, такие как UriInfo
или HttpServletRequest
, могут быть введены таким образом . Как мне получить доступ к моему собственному LocaleProvider?
К вашему сведению, это на Glassfish 3.1.1 с использованием Jersey 1.8.