我搜索了很多,但无法找到有关此内容的任何有用信息:
在Tomcat中使用了什么 setenv.sh ?
假设我们有一个REST API(使用Java EE或Spring构建),它使用一些参数/变量,如AWS Credentials,Database Credentials等。
对于我上面提到的这些事情,使用环境变量参数化应用程序是否有意义,并且如果我们使用多个实例,则将它们的值放在 setenv.sh 上的env变量中以用于每个Tomcat实例并使用不同的参数/变量?
或者 setenv.sh 对于那样的事情不是吗?
提前致谢
答案 0 :(得分:2)
我只看到它用于指定isSelected
,但我注意到RUNNING.txt文件提到使用它来设置interface User {
id: number;
}
interface SelectableUser extends User {
isSelected: boolean;
}
class Something {
users: SelectableUser[];
unselectExistingUser(usr: SelectableUser, event: any) {
this.users.map((currentUser) => {
if (usr.id === currentUser.id) {
currentUser.isSelected = event.target.checked;
}
return currentUser;
});;
}
}
和CATALINA_OPTS
。
RUNNING.txt还在高级配置 - 多个Tomcat实例下声明:
在许多情况下,最好只有一份副本 Tomcat二进制分发在多个用户之间共享 服务器。为了实现这一点,您可以设置CATALINA_BASE 环境变量到包含您的文件的目录 '个人'Tomcat实例。
所以我猜答案是,可以为每个应用程序创建一个JRE_HOME
文件,并且可能可以用来存储凭据,但我不认为它通常用于此目的。
答案 1 :(得分:1)
〜/程序/apache-tomcat-9.0.7/bin/setenv.sh export CATALINA_OPTS =“ $ CATALINA_OPTS -DENV_TARGET = prod -DMy_Env_Var1 =任何-DMy_Env_Var2 = CapitalOneIsTheBest”
因此,setenv.sh中上述“”之间的所有内容都将设置为Tomcat中应用程序的环境变量。要检索/使用这些环境变量,请在Java(Spring)应用程序中使用它:
Ex1)字符串myWhatever = java.lang.System.getProperties()。getProperty(“ My_Env_Var1”); 例2)字符串env = System.getProperties()。getProperty(“ My_Env_Var2”);
要更改环境变量(例如,在编写单元测试时),请执行以下操作: System.setProperty(“ My_Env_Var1”,“ newEnv”);