资源注入不起作用

时间:2016-06-02 07:17:04

标签: java-ee jndi wildfly

我在管理控制台中为MySQL创建了新的DataSource。 (名称: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;

它无效,dataSource为空。

其他信息:

  • WildFLy 9和8

  • 应用类型:Maven EJB

1 个答案:

答案 0 :(得分:1)

嗯,问题解决了。这是我的错误。

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

我的错误:我手动创建了@EJB bean实例,而不是使用XmlRpcStruct myMethod(...params...); 注释。它位于依赖关系层次结构的顶部。这就是为什么我忽视它。并且容器不能填充所有嵌套注入bean的所有依赖项。