java - 如何在tomcat中设置自定义环境变量?
问题描述
我的程序中的键值对变量很少,现在是硬编码的。
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);
这些是我正在使用的打印语句。
解决方案
这绝对是一个粗略的问题,因为在我的情况下,堆栈溢出中所有已批准的答案都失败了。我尝试了两者Setenv.bat & Catalina.bat files
我什至尝试CATALINA_HOME/conf
在 tomcat 的文件夹中创建一个配置文件,称为variables.conf
声明所有变量,包括键和值,我需要以environment variable.
上述链接中的所有这些方法都失败了,最后我尝试了使用JVM Settings
Tomcat 的方法
打开窗口 -->> 首选项 -->> 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
如果您有任何疑问,请务必询问。
推荐阅读
- android - Android:不能使用提供的参数调用以下函数
- python - 使用正则表达式从字符串中提取文本
- python - 在 python 脚本中使用 mitmproxy
- angular - NPM 代理身份验证失败
- c# - iTextSharp 设置动态边距
- css - Laravel Sass 包含在 html 中
- gradle - gradle复制文件任务在构建中不起作用
- python - Google Cloud Dataflow - 自动缩放不起作用
- sapui5 - 搜索帮助在 UI5 中没有给出准确的结果
- openstack-nova - 如何使用 openstack 上的当前环境附加浮动 IP