this post'u izledim ve Accept-Language üstbilgisi için HTTP İsteği'ni taranan ilk özel enjektabl sağlayıcı, LocaleProvider
tarafından oluşturuldu.Jersey: @Context ek açıklama ile InjectableProvider nasıl kullanılır?
@Path("test")
@GET
public Response getStatus(@Context Locale locale) {
log.finer("Locale: "+ locale);
Response response = Response
.noContent()
.build();
return response;
}
Ama bir ExceptionMapper
kullanmak istediğimde yerel enjekte nasıl bilmiyorum: Bir Jersey kaynağı içinde kullanmak, düzgün çalışır. Bir üye değişken olarak açıklama denedim:
public class MyExceptionMapper implements ExceptionMapper<MyException> {
@Context
private Locale locale;
@Override
public Response toResponse(MyException ex) {
...
}
}
ama bu dağıtım başarısız:
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
Diğer şeyler UriInfo
gibi ya HttpServletRequest
böyle enjekte edilebilir. Kendi LocaleProvider'ıma nasıl erişebilirim?
FYI bu, Jersey 1.8 kullanılarak Glassfish 3.1.1 üzerinde.
Hey Hank, bu LocaleProvider'ın bir ExceptionMapper ile çalışmasını sağlayabildiniz mi? –
Hayır. ExceptionMapper içinde yerel algılama gerçekleştirdim. Muhtemelen bu soruyu kapatmalıyım ... – Hank