gpt4 book ai didi

java - Tomcat 中的 ResourceLink 元素不起作用

转载 作者:行者123 更新时间:2023-12-02 07:11:35 25 4
gpt4 key购买 nike

我使用的是apache-tomcat-7.0.35。我在server.xml中定义了一个环境变量,如下

<GlobalNamingResources>

<Environment name="sam"
value="D:\AppServers\apache-tomcat-7.0.35\conf\sample.xml"
type="java.lang.String" override="true"/>

</GlobalNamingResources>

我在 context.xml 中的上下文元素旁边使用 ResourceLink 元素

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Practice_1" docBase="/Practice_1"
crossContext="true" reloadable="true" debug="1">
<ResourceLink name="sam" global="sam" type="java.lang.String"/>

</Context>

当我尝试使用

在代码中获取此值时
 Context initCtx = new InitialContext();
String configPath = (String)initCtx.lookup("sam");

它抛出javax.naming.NameNotFoundException.javax.naming.NameNotFoundException:名称[sam]未在此上下文中绑定(bind)。找不到[sam]。

我该如何纠正这个问题?

最佳答案

tomcat jndi 有默认 namespace “java:comp/env”。

将您的代码修改为

Context initCtx = new InitialContext();
String configPath = (String)initCtx.lookup("java:comp/env/sam");

Context initCtx = new InitialContext();
Context rootCtx = (Context) initCtx.lookup("java:comp/env");
String configPath = (String)rootCtx.lookup("sam");

关于java - Tomcat 中的 ResourceLink 元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447449/

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