Jakarta ee 资源注入不起作用

Jakarta ee 资源注入不起作用,jakarta-ee,jndi,wildfly,Jakarta Ee,Jndi,Wildfly,我在管理控制台中为MySQL创建了新的数据源。(名称:MySqlDS,JNDI:java:/jdbc/MySqlDB) 如果我通过以下方式加载它: initialContext = new InitialContext(); dataSource = (DataSource) initialContext.lookup("java:/jdbc/MySqlDB"); connection = dataSource.getConnection();` @Resource(lookup="java:

我在管理控制台中为MySQL创建了新的数据源。(名称:MySqlDS,JNDI:java:/jdbc/MySqlDB)

如果我通过以下方式加载它:

initialContext = new InitialContext();
dataSource = (DataSource) initialContext.lookup("java:/jdbc/MySqlDB");
connection = dataSource.getConnection();`
@Resource(lookup="java:/jdbc/MySqlDB")
private static DataSource dataSource;
它工作正常

但如果我通过以下方式加载:

initialContext = new InitialContext();
dataSource = (DataSource) initialContext.lookup("java:/jdbc/MySqlDB");
connection = dataSource.getConnection();`
@Resource(lookup="java:/jdbc/MySqlDB")
private static DataSource dataSource;
它不工作,数据源为空

其他资料:

  • WildFLy 9和8

  • 应用程序类型:Maven EJB


    • 好吧,问题解决了。这是我的错误

      依赖注入只有在容器管理bean的生命周期时才起作用。在这种情况下,容器将嵌入依赖项


      我的错误是:我手动创建了bean的
      新的
      实例,而不是使用
      @EJB
      注释。它位于依赖关系层次结构的顶部。这就是我看不见它的原因。容器无法填充所有嵌套注入bean的所有依赖项。

      您是否通过注释激活了配置的使用?!删除
      static
      关键字…Steve C,我尝试过不使用static-它仍然不起作用。KLajdPaja,如何通过注释激活配置的使用?我只是在
      DataSource-DataSource
      上面添加
      @Resource(lookup=“java:/jdbc/MySqlDB”)
      。此外,DI(带有
      @EJB
      注释)工作正常。