(Пожалуйста, будьте добры, это мои первые шаги в Java EE). Я работаю с Netbeans 8.1, развертывая модуль EJB на локальном сервере Glassfish. У меня есть GlassFish-resource.xml со следующим ресурсом определено:Java EE инъекция не работает на Glassfish
<jdbc-resource enabled="true" jndi-name="java:app/jdbc/myDataSource"
И у меня есть класс DAO, где я пытаюсь внедрить этот ресурс
@Named
public class SimpleDal {
@Resource(name = "jdbc/myDataSource", lookup = "java:app/jdbc/myDataSource")
private static DataSource ds ;
Я попробовал несколько способов сделайте эту работу, но я всегда получаю NULL в переменной ds. Я отлаживал и запрашивал контекст, и я всегда получаю имя java:app/jdbc/myDataSource
не найден. Возможно, я ничего не делаю правильно, это мои первые шаги на Java EE (я всегда разрабатывал для PHP). Может ли кто-нибудь направить меня, чтобы не терять больше времени? Спасибо
Примечание: Я добавляю аннотацию @Named
к классу SimpleDal, потому что я где-то читал, что для того, чтобы Инъекция работала, я должен быть в Bean.
В CDI редко разрешено использование в статических полях, если оно не указано в документации. – thatsIch