Ok I solved this by manually looking up the component rather than injection using the following
public class LocaleResolver implements net.jawr.web.resource.bundle.locale.LocaleResolver {
public LocaleResolver() {}
public String resolveLocaleCode(HttpServletRequest request) {
//Lookup component manually as not part of SEAM lifecycle
LocaleSelector localeSelector = (LocaleSelector)Contexts.getSessionContext().get(LocaleSelector.class);
if(localeSelector!=null){
return localeSelector.getLocaleString();
}else{
return request.getLocale().toString();
}
}
}
I believe this is because the implemented LocaleResolver is not part of the seam lifecycle and therefore is not intercepted, but I could be wrong...?