gpt4 book ai didi

java - 如何使用 docbase Root 从 server.xml 读取上下文参数

转载 作者:行者123 更新时间:2023-11-28 22:58:53 26 4
gpt4 key购买 nike

当我尝试通过 server.xml 访问数据源并将 docbase 设置为我的应用程序时。它工作完美。但是,如果我尝试通过 docBase=root 和 path=""访问相同的内容,则无法访问它。我正在使用 Tomcat

    <Context docBase="Configurator" path="/configurator" reloadable="true" source="org.eclipse.jst.jee.server:Configurator">
<Resource auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxActive="10" maxIdle="4" name="jdbc/DB" password="xyz" type="javax.sql.DataSource" url="jdbc:sqlserver://xxx.xx.xx.xx:1433;DatabaseName=23" username="sa"/>
</Context>


<Context path="" docBase="ROOT" reloadable="true" crossContext="true" override="true">
<Resource auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxActive="10" maxIdle="4" name="jdbc/Db2" password="xyz@123" type="javax.sql.DataSource" url="jdbc:sqlserver://xxx.xx.xx.xx:1433;DatabaseName=Real23" username="sa"/>
</Context>

我无法通过以下代码访问第二个值“Db2”-

try {
Context initContext;
initContext = new InitialContext();
DataSource o = (DataSource)initContext.lookup("java:/comp/env/jdbc/Db2");
System.out.println(o.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

任何人都可以建议我应该怎么做才能从 server.xml 访问这些元素,其中 docbase 是 tomcat 的根目录。

最佳答案

我不完全确定您要做什么。有两种可能性:

  1. 您正在尝试在根 war 下部署 JNDI 资源。
  2. 您正在尝试将 JNDI 资源全局部署到所有 Web 应用程序上下文。

如果是前者,那么这永远不会按设计工作。上下文是根上下文这一事实使分层 URL 结构看起来很相关,但事实并非如此。根 Web 应用程序就像另一个其他 Web 应用程序一样。因此,有关类加载器和资源隔离的规则适用。根上下文/Web 应用程序不以任何方式“高于”其他上下文/Web 应用程序,因此不允许以这种方式共享资源。

如果您试图使资源对所有应用程序都是全局的,那么不要将它放在上下文中,而是在 Tomcat 中将其设为全局。 Tomcat 有一个全局 context.xml它在运行时合并到内存中的每个 Web 应用程序中。我觉得你也可以直接放在server.xml里面在 <GlobalNamingResources> 下.有关详细信息,请参阅此处的 Tomcat 文档:http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html

关于java - 如何使用 docbase Root 从 server.xml 读取上下文参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22485162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com