Java EE 使用没有查找方法的数据源

Java EE using Datasource without lookup method

我正在尝试使用 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 中设置一些东西,但我不知道是什么。我尝试 google 它,但我不太确定要使用什么搜索词。

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

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

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