我正在尝试使用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中设置一些东西,但我不知道是什么。我试图谷歌,但我不确定要使用哪些搜索器。
答案 0 :(得分:1)
使用Resource annotation,您可以尝试使用lookup元素而不是名称,并使用您在应用程序服务器中配置的jndi-name。
例 -
如果使用jndi-name“jdbc / crmv1”进行映射,请尝试@Resource(lookup="dbc/crmv1")
或@Resource(lookup="java:jdbc/crmv1")
与web.xml的唯一关系是您使用部署描述符来覆盖您在注释中指定的资源映射。