Java 如何在context.xml中存储字符串值

Java 如何在context.xml中存储字符串值,java,string,tomcat,jndi,context.xml,Java,String,Tomcat,Jndi,Context.xml,我想将连接URL存储在Tomcat应用程序的JNDI绑定中。由于Tomcat使用context.xml来定义JNDI资源,因此我需要找出在context.xml中存储字符串(或多个连接的多个字符串)的正确方法 我这样做的原因是,我可以为不同的环境定义不同的字符串,并通过JNDI加载它们 通常,我会看到这样的条目: <Context ...> <Resource name="someName" auth="Container" type="some

我想将连接URL存储在Tomcat应用程序的JNDI绑定中。由于Tomcat使用
context.xml
来定义JNDI资源,因此我需要找出在
context.xml
中存储字符串(或多个连接的多个字符串)的正确方法

我这样做的原因是,我可以为不同的环境定义不同的字符串,并通过JNDI加载它们

通常,我会看到这样的条目:

<Context ...>
    <Resource name="someName" auth="Container"
            type="someFullyQualifiedClassName"
            description="Some description."/>
</Context>

提前谢谢

您可以将命名值配置为servlet上下文初始化参数,通过将元素嵌套在此元素中,使其对web应用程序可见。例如,可以创建如下初始化参数:

 <Context>
      ...
     <Parameter name="companyName" value="My Company, Incorporated"
          override="false"/>
       ...
 </Context>

   This is equivalent to the inclusion of the following element in the web application deployment descriptor (/WEB-INF/web.xml):



 <context-param>
       <param-name>companyName</param-name>
       <param-value>My Company, Incorporated</param-value>
 </context-param>

请参阅参考

您可以使用
环境
标签:

<Context>
    <Environment name="myConnectionURL" value="amqp:5272//blah.example.com&param1=4" type="java.lang.String"/>
</Context>

这与使用
参数
标记非常相似,但不需要
ServletContext

这不会回答所问的问题,即使它被标记为答案,并且可能对原始问题提交者有所帮助。对于来此帖子寻找问题解决方案的人,请参考@Stoffe提供的答案。文件名是否应为
context.xml
,它存储在哪里?@gkiko:在Tomcat中,它被称为
context.xml
,并且在Tomcat安装的
conf
目录中应该已经有一个,on*nix通常位于
/usr/share/tomcat/conf/context.xml
。其他web服务器具有其他文件和约定。
 <Context>
      ...
     <Parameter name="companyName" value="My Company, Incorporated"
          override="false"/>
       ...
 </Context>

   This is equivalent to the inclusion of the following element in the web application deployment descriptor (/WEB-INF/web.xml):



 <context-param>
       <param-name>companyName</param-name>
       <param-value>My Company, Incorporated</param-value>
 </context-param>
 ServletContext sc = getServletContext();  

 String companyName = sc.getInitParameter("companyName");  
<Context>
    <Environment name="myConnectionURL" value="amqp:5272//blah.example.com&param1=4" type="java.lang.String"/>
</Context>
InitialContext initialContext = new InitialContext();
Context environmentContext = (Context) initialContext.lookup("java:/comp/env");
String connectionURL = (String) environmentContext.lookup("myConnectionURL");