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 的唯一关系是您使用部署描述符覆盖您在注释中指定的资源映射。
我正在尝试使用 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 的唯一关系是您使用部署描述符覆盖您在注释中指定的资源映射。