मैंने this post का पालन किया और पहले कस्टम इंजेक्शन योग्य प्रदाता, LocaleProvider
द्वारा बनाया गया जो स्वीकार्य-भाषा शीर्षलेख के लिए HTTP अनुरोध स्कैन करता है। यह ठीक काम करता है अगर मैं इसे एक जर्सी संसाधन के भीतर का उपयोग करें:जर्सी: @Context एनोटेशन के साथ इंजेक्शन योग्य प्रदाता का उपयोग कैसे करें?
@Path("test")
@GET
public Response getStatus(@Context Locale locale) {
log.finer("Locale: "+ locale);
Response response = Response
.noContent()
.build();
return response;
}
लेकिन मैं कैसे स्थान इंजेक्षन नहीं जानते कि जब मैं एक ExceptionMapper
में इसका इस्तेमाल करना चाहते हैं। UriInfo
तरह
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
अन्य बातों या HttpServletRequest
ऐसा इंजेक्ट किया जा सकता: मैं एक सदस्य चर के रूप में उस पर टिप्पणी करने के लिए कोशिश की है:
public class MyExceptionMapper implements ExceptionMapper<MyException> {
@Context
private Locale locale;
@Override
public Response toResponse(MyException ex) {
...
}
}
लेकिन इस तैनाती पर विफल रहता है। मैं अपने लोकेलप्रोवाइडर तक पहुंच कैसे प्राप्त करूं?
एफवाईआई यह जर्सी 1.8 का उपयोग कर ग्लासफ़िश 3.1.1 पर है।
अरे हैंक, क्या आप कभी भी इस LocaleProvider को ExceptionMapper के साथ काम करने में सक्षम थे? –
नहीं। मैंने ExceptionMapper के अंदर लोकेल-डिटेक्शन लागू किया है। मुझे शायद इस सवाल को बंद करना चाहिए ... – Hank