【问题标题】:what is resource-ref tag meant for, in web.xml? [duplicate]在 web.xml 中,resource-ref 标记的含义是什么? [复制]
【发布时间】:2012-07-17 19:24:48
【问题描述】:

可能重复:
What is resource-ref in web.xml used for?

我在Tomcat的context.xml中添加了如下标签:

    <Resource name="jdbc/PollDatasource" auth="Container" type="javax.sql.DataSource"
    driverClassName="org.apache.derby.jdbc.ClientDriver" url="jdbc:derby://localhost:1527/poll_database;create=true"
    username="suhail" password="suhail" maxActive="20" maxIdle="10" maxWait="-1" />

当服务器启动并部署应用程序时,会读取上面的标签。我还在我的项目的web.xml 中添加了以下内容:

 <resource-ref>
  <description>my connection</description>
  <res-ref-name>jdbc/PollDatasource</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

上面的标签是什么意思?

因为当我写这样的语句时:

DataSource ds = (DataSource)envContext.lookup("jdbc/PollDatasource")

不是直接查看服务器的context.xml吗?我知道我错了。在这种情况下,请帮助我理解 resource-ref 标签在 web.xml 中的含义是什么?

【问题讨论】:

标签: java database tomcat jdbc datasource


【解决方案1】:

我相信它的意思是“提示”或实时文档,您的 Web 应用程序期望能够访问具有特定名称和其他属性的 JNDI 资源。 context.xml 文件是 Tomcat 工件,虽然许多应用服务器都嵌入了 Tomcat 引擎,但它远非通用。

【讨论】:

    【解决方案2】:

    您必须使用以下代码查找

    DataSource ds = (DataSource)envContext.lookup("java:comp/env/jdbc/PollDatasource");
    

    在您的网络应用程序中,

    JNDI 上下文在应用程序内部和应用程序外部是不同的,在本例中是在您定义资源的 context.xml 中。

    resouce-ref 部分中定义的所有资源都映射到应用程序的 Env 上下文。因此,应用程序可以访问这些资源。应用上下文和容器上下文之间的交叉引用是在部署时完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-19
      • 2019-01-26
      • 1970-01-01
      • 2014-09-12
      • 2017-08-28
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多