我在一个共享的Tomcat环境中部署了两个spring servlet。我希望能够使用各自的命令行参数运行每个应用程序。例如,我希望使用不同的spring配置文件来运行每个应用程序。我知道我可以在www.example.com中设置环境变量setenv.sh,但我希望使其动态化。我曾认为我可以在www.example.com中执行if/elsecatalina.sh,如果应用程序名称为X,然后相应地设置参数。我可以使用我的应用程序拾取的环境变量并从这里设置配置文件吗?有人知道如何实现这一点吗?我不想更改应用程序的构建,也不想进行会影响此共享Tomcat服务器中其他应用程序的全局更改。
我试过在www.example.com中设置一个if/elsecatalina.sh,其中设置了JAVA_OPTS,但这不是为每个应用程序设置的,而是全局设置的。我希望能够更改自动部署war的位置。
1条答案
按热度按时间goqiplq21#
它可能不完美,但对我很有效:
我已经为每个应用程序创建了环境变量,并在每个应用程序的属性文件中读取这些变量。在示例中,应用程序A和应用程序B需要使用两个不同的Spring配置文件运行。
在www.example.com中setenv.sh
在每个应用程序的属性文件中,我会分别引用它们,即
spring.profiles.active=${PROJECT-A_SPRING_PROFILE:#{default}}
和spring.profiles.active=${PROJECT-B_SPRING_PROFILE:#{default}}