java:comp/env和环境变量

wj8zmpe1  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(195)

我正在将现有的VMS tomcat项目迁移到aks。在vm中,我们使用server.xml提供环境变量,使用 <Environment .../> 标签。对于kubernetes,我使用 env: 字段来替换这些值。
项目中有代码config.java:

private Object getObject(String key) {
        try {
            log.debug("looking up key: " + key + " in environment context.");
            Object rtn = getEnvContext().lookup(key);
            log.debug("Found property for " + key + ": " + rtn);
            return rtn;
        } catch (NamingException e) {
            log.debug("Unable to find key: " + key);
            return null;
        }
    }

private Context getEnvContext() throws NamingException {
        Context initCtx = new InitialContext();
        Context envCtx = (Context) initCtx.lookup("java:comp/env");
        return envCtx;
    }

从什么是java:comp/env?可以看出java:comp/env是jndi树中的节点,您可以在其中找到当前JavaEE组件的属性。
以下是我的问题。
tomcat启动时是否使用server.xml <Environment .../> 标记以在jndi树的节点中创建属性(因此,当 .getObject(someString) 调用时,它可以获取在server.xml中定义的值)
如果我想用helm-chart-env字段替换server.xml,这些属性(在helm中定义)会在jndi树的节点中定义吗?或者我需要在jndi.xml中将这些bean定义为jndiobjectfactorybean吗?
如果我在这里没有任何意义,我很抱歉。我对tomcat以及jndi和jndi树的概念非常陌生。如果我需要澄清,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题