没有web.xml的JNDI参考和查找资源

时间:2019-05-23 08:59:27

标签: java servlets jndi servlet-3.0

我的应用程序具有定义了资源类的外部依赖关系,例如com.sample.SomeResource。 运行我的应用程序的应用程序服务器提供可以在我的应用程序中使用的环境资源。其中之一是com.sample.SomeResource的实例。如果我的应用程序具有Web描述符-web.xml,则可以使用<resource-ref>标记来引用它:

<resource-ref>
        <res-ref-name>SomeResource</res-ref-name>
        <res-type>com.sample.SomeResource</res-type>
    </resource-ref>

然后我可以查找它。

 try {
      InitialContext initialContext = new InitialContext();
      SomeResource someResource= (SomeResource) ctx.lookup("java:comp/env/SomeResource");
    } catch (NamingException e) {
      ...
    }

但是,我想摆脱web.xml。有没有办法以编程方式(动态地)定义它?

1 个答案:

答案 0 :(得分:1)

您可以在字段上使用javax.annotation.Resource注释。

@Resource(lookup = "java:comp/env/SomeResource")
 private SomeResource someResource;