1

我的程序中的键值对变量很少,现在是硬编码的。

String pswd = StringUtils.defaultString(System.getProperty("KEY_STORE_PASSWORD"), "password");
String algorithm = StringUtils.defaultString(System.getProperty("KEY_STORE_ALGORITHM"), "SunX509");

我需要动态加载这些值。为此,我需要在 Tomcat 中将这些值设置为环境变量(自定义)。我正在使用 Tomcat 插件运行应用程序。我尝试使用 setenv.bat 文件概念。我在其中添加了以下行。

set KEY_STORE_PASSWORD=password

但我没有得到它我的日志。我用了另一种方法

set JAVA_OPTS=-DKEY_STORE_PASSWORD=password

我添加了这一行,尝试过,但什么都没有……除了 null 在控制台中打印。我不知道什么是JAVA_OPTS,我没有为Tomcat添加任何系统环境变量。我应该先添加它们吗?我们需要添加哪些变量作为 Tomcat 的环境变量?JAVA_OPTS 是其中之一吗?

我可以创建自定义环境变量而不创建它们吗?

 String pswd1=System.getProperty("KEY_STORE_PASSWORD");

    logger.info("pswd1 from tomcat"+ pswd1);

这些是我正在使用的打印语句。

4

1 回答 1

0

这绝对是一个粗略的问题,因为在我的情况下,堆栈溢出中所有已批准的答案都失败了。我尝试了两者Setenv.bat & Catalina.bat files我什至尝试CATALINA_HOME/conf在 tomcat 的文件夹中创建一个配置文件,称为variables.conf声明所有变量,包括键和值,我需要以environment variable.

将用户定义的环境变量传递给tomcat

上述链接中的所有这些方法都失败了,最后我尝试了使用JVM SettingsTomcat 的方法

  1. 打开窗口 -->> 首选项 -->> Tomcat -->> JVM 设置

    在此处Append to JVM Parameters,添加您需要作为环境变量工作的变量(可以在整个项目中使用 访问System.getProperty())。

一个例子如下图所示:

在此处输入图像描述

这里我的变量是:

KEY_STORE_PASSWORD=
KEY_STORE_ALGORITHM=
KEY_STORE=
KEY_STORE_PROTOCOL=

可以将其写入 JVM 设置为-D followed by variable [equals to] variable value.

例如:-DKEY_STORE_PASSWORD=password

如果您有任何疑问,请务必询问。

于 2020-05-13T19:33:09.200 回答