Jon*_*gen 5 java tomcat kubernetes
我想通过 Kubernetes 为 tomcat 中的 server.xml 设置环境变量。这是我的部署.yaml:
apiVersion: v1
kind: Pod
metadata:
name: tomcat-test-pod
...
...
env:
- name: hostName
value: 'test.com'
- name: localhost
value: 'localhost.com'
Run Code Online (Sandbox Code Playgroud)
这是我的 server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Resource
auth="Container"
description="Global E-Mail Resource"
mail.debug="false"
mail.smtp.auth="false"
mail.smtp.ehlo="true"
mail.smtp.host="${hostName}"
mail.smtp.localhost="${localhost}"
mail.smtp.port="25"
mail.smtp.sendpartial="true"
mail.transport.protocol="smtp"
name="mail/Session"
type="javax.mail.Session"/>
Run Code Online (Sandbox Code Playgroud)
从https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html,它说我需要设置为org.apache.tomcat.util.digester. PROPERTY_SOURCE,org.apache.tomcat.util.digester.EnvironmentPropertySource但我不确定我应该做什么。我需要在 setenv.sh 中设置它还是需要创建另一个类?任何帮助将不胜感激..
org.apache.tomcat.util.digester.PROPERTY_SOURCE是一个 Java 系统属性,因此您可以在接受系统属性的地方设置它:
setenv.sh:CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource
Run Code Online (Sandbox Code Playgroud)
catalina.sh/startup.sh仅当您调用启动 Tomcat(直接或间接)时,这才有效。例如,当将 Tomcat 作为服务启动时,它将无法在 Windows 上运行。
catalina.properties:org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource
Run Code Online (Sandbox Code Playgroud)
这总是有效的。