[英]JNDI @Resource annotation
在Servlet和过滤器类中,我可以通过注释初始化DataSource变量
@Resource(name = "jdbc/testDB")
protected DataSource ds;
但是它如何通过注解在基本类中初始化? 通常抛出NullPointerException
public class AddAuto {
@Resource(name = "jdbc/testDB")
private DataSource ds;
}
你的容器是什么?
如果是tomcat,则资源名称应如下所示
@Resource(name = "java:/comp/env/jdbc/testDB")
protected DataSource ds;
我不知道其他容器,但是JBoss与Tomcat相同,而GlassFish是您的值。
另外,我建议您进行旧查询,以帮助您进行调试
void init(){
DataSource ds=(DataSource)InitialContext.doLookup("java:/comp/env/jdbc/testDB");
}
容器仅在Servlet,过滤器等知名组件内部检查批注。 您应该将类转换为以下组件:
或者您可以使用非Java EE解决方案,例如spring
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.