Java EE使用Datasource而不使用查找方法

时间:2015-06-09 12:46:34

标签: java datasource code-injection web.xml

我正在尝试使用JNDI在我的程序中使用数据源(数据库)。我让它部分工作,但不是我希望它工作。 我想注入JNDI资源,但它无法正常工作。

如果我使用注释,它不起作用。

@Resource(name="jdbc/crmv1")
DataSource ds;

但是当我使用查找方法时它确实有效:

try {
        ds = InitialContext.doLookup("jdbc/crmv1");
    } catch (NamingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

我想使用注释。我很确定,我必须在web.xml中设置一些东西,但我不知道是什么。我试图谷歌,但我不确定要使用哪些搜索器。

1 个答案:

答案 0 :(得分:1)

使用Resource annotation,您可以尝试使用lookup元素而不是名称,并使用您在应用程序服务器中配置的jndi-name。

例 - 如果使用jndi-name“jdbc / crmv1”进行映射,请尝试@Resource(lookup="dbc/crmv1")@Resource(lookup="java:jdbc/crmv1")

与web.xml的唯一关系是您使用部署描述符来覆盖您在注释中指定的资源映射。