Java 使用setenv.sh抛出异常的tomcat server.xml环境变量

Java 使用setenv.sh抛出异常的tomcat server.xml环境变量,java,tomcat,kubernetes,kubernetes-helm,Java,Tomcat,Kubernetes,Kubernetes Helm,我正在尝试使用环境变量在server.xml中设置一些值。由此,我在/tomcat/bin中创建setenv.sh文件,其中包含以下内容: CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource" 当我运行tomcat时,会出现以下异常: org.apach

我正在尝试使用环境变量在server.xml中设置一些值。由此,我在/tomcat/bin中创建setenv.sh文件,其中包含以下内容:

CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource"
当我运行tomcat时,会出现以下异常:

org.apache.tomcat.util.digester.Digester.<clinit> Unable to load property source[org.apache.tomcat.util.digester.EnvironmentPropertySource].

org.apache.tomcat.util.digester.EnvironmentPropertySource
类从和开始提供。您必须运行较旧的版本。

您的日志(
catalina..log
)应该包含有关Tomcat未能加载
环境属性源的详细信息。你能给你的问题加上答案吗?谢谢。我刚刚发现,由于某种原因,这个类在8.5.0到8.5.51之间不可用(来自tomcat github)。除了更新tomcat版本,我还有其他选择吗?()由于上一个罐子在8.5.63中被更正,因此最好的选择是升级:您只需要用新罐子替换旧罐子。该类在8.5.46之前不存在(参见答案中发布说明的链接)。
26-Apr-2021 19:32:44.857 SEVERE [main] org.apache.tomcat.util.digester.Digester.<clinit> Unable to load property source[org.apache.tomcat.util.digester.EnvironmentPropertySource].
 java.lang.ClassNotFoundException: org.apache.tomcat.util.digester.EnvironmentPropertySource
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.tomcat.util.digester.Digester.<clinit>(Digester.java:97)
        at org.apache.catalina.startup.Catalina.createStartDigester(Catalina.java:272)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:644)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)

26-Apr-2021 19:32:44.859 SEVERE [main] org.apache.tomcat.util.digester.Digester.<clinit> Unable to load property source[org.apache.tomcat.util.digester.EnvironmentPropertySource].
 java.lang.ClassNotFoundException: org.apache.tomcat.util.digester.EnvironmentPropertySource
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.tomcat.util.digester.Digester.<clinit>(Digester.java:97)
        at org.apache.catalina.startup.Catalina.createStartDigester(Catalina.java:272)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:528)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:644)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:311)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)