java - 如何在 tomcat 中设置 org.apache.tomcat.util.digester.EnvironmentPropertySource

标签 java tomcat kubernetes

我想通过 Kubernetes 在 tomcat 中为 server.xml 设置环境变量。这是我的 deployment.yaml:

apiVersion: v1
kind: Pod
metadata:
 name: tomcat-test-pod
...
...
env:
  - name: hostName
    value: 'test.com'
  - name: localhost
    value: 'localhost.com'
这是我的 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"/>
来自 https://tomcat.apache.org/tomcat-9.0-doc/config/systemprops.html ,它说我需要设置 org.apache.tomcat.util.digester. PROPERTY_SOURCEorg.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
    
    这只有在您拨打 catalina.sh/startup.sh 时才有效。启动Tomcat(直接或间接)。例如,当将 Tomcat 作为服务启动时,它将无法在 Windows 上运行。
  • 将系统属性添加到 catalina.properties :
  • org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource
    
    这总是有效的。

    关于java - 如何在 tomcat 中设置 org.apache.tomcat.util.digester.EnvironmentPropertySource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67214216/

    相关文章:

    java - 显示在整个执行过程中命中了哪些代码行的 Eclipse 工具?

    java - 从 java 项目转换为插件项目的选项在哪里?

    java - org.glassfish.jersey.server.internal.process.MappableException : org. apache.catalina.connector.ClientAbortException : java.net.SocketException:

    kubernetes - Kubernetes如何处理没有任何资源配额的Pod?

    kubernetes - Kubernetes服务指向ReplicaSet的特定实例

    Java 不在 TextView 中打印字符串

    java - Apache + Tomcat部署中Tomcat线程池的行为

    java - 如何在 NetBeans 7.3 上注册 Tomcat 7.0.41 服务器?

    java - Tomcat 内存泄漏(一些旧的 war 已经在内存中)

    javascript - Azure 存储 SAS token 在本地主机上工作,但部署在 Azure Kubernetes 上时不起作用