У меня проблемы с инъекцией зависимости, она работает хорошо, когда все идет хорошо.Когда возникает исключение, я перехватываю его и проверяю метод объекта, когда я делаю так, чтобы инспектор по переменным отображал сообщение, описанное в заголовке:
There is no method "get" in class "com.company.project.controller.Diccionario$Proxy$_$$_Weld$EnterpriseProxy$"
, если я продолжаю программу, оно выдает и исключение наconsole:
javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
Заранее спасибо за все ответы!
Это мой соответствующий код:
Универсальный контроллер
<!-- language: lang-java -->
public abstract class Controller<C> {
@Inject
protected Diccionario texto;
public List<String> save(C entidad) {
List<String> res = new ArrayList();
try {
getDao().save(entidad); // <-- here I can inspect texto.get("test");
} catch (UniqueException ex) {
String key = "test";
String value = texto.get(key); // <-- here it shows the "There is no method..."
res.add(value);
}
return res;
}
}
Aконтроллер, который использует универсальный контроллер
<!-- language: lang-java -->
@Stateless
public class ControllerProducto extends Controller<Producto> {
}
Класс Diccionario:
<!-- language: lang-java -->
@Stateless
public class Diccionario {
private HashMap<String, String> etiquetas;
private void init() {
etiquetas = new HashMap();
etiquetas.put("test", "This is a sample test");
}
public String get(String clave) {
if (etiquetas == null) {
init();
}
String res = "";
if (etiquetas.containsKey(clave.toUpperCase())) {
res = etiquetas.get(clave);
}
return res;
}
}