TOMCAT-catalina.properties-自定义变量

时间:2020-11-02 18:49:15

标签: tomcat

在TOMCAT catalina.properties中,可以定义自定义变量:

myLib = D:/proj/library

但是如果我使用前面的变量定义了另一个变量,则无法正常工作:

myLibDir = ${myLib}/dir   

myLibDir无法按我的预期使用 D:/ proj / library / dir 进行解析 但使用字符串'$ {myLib} / dir'

如何使用antoher定义变量???

2 个答案:

答案 0 :(得分:0)

是的。一种方法是使用属性文件。

(例如)您可以在 catalina.properties

上定义以下属性
org.apache.tomcat.util.digester.PROPERTY_SOURCE=com.abc.ExternalPropertySource
com.abc.ExternalPropertySource.file=abc-enterprise.properties

在Tomcat \ conf文件夹上创建一个名称为abc-enterprise.properties的文件并定义属性列表

SslPassword=P@ssw0rd

您可以通过在Linux和Windows上均指定${SslPassword}来调用此属性。

我们的一个项目中,我们已在server.xml上指定了密钥库密码,如上。

<Connector executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11Nio2Protocol" 
           port="8090" minSpareThreads="64" maxThreads="512"
    sslImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation" scheme="https" secure="true" SSLEnabled="true" 
    enableLookups="false" acceptCount="100" connectionTimeout="20000" URIEncoding="UTF-8" tcpNoDelay="true" compression="force" compressableMimeType="text/html,text/xml,text/plain,application/x-java-applet,application/octet-stream,application/xml,text/javascript,text/css,image/png,image/bmp,image/jpeg,image/gif,application/pdf,application/x-javascript,application/javascript,application/json,application/x-shockwave-flash,application/xhtml+xml,application/xml+xhtml" noCompressionUserAgents="gozilla, traviata" server="MY Manager">


    <SSLHostConfig ciphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" certificateVerification="none" protocols="TLSv1.2" sslProtocol="TLS"><Certificate certificateKeystoreFile="webapps/myManager.bin" certificateKeyAlias="myAlias" certificateKeystorePassword="${SslPassword}" /></SSLHostConfig>
</Connector>

答案 1 :(得分:0)

感谢您的答复,但问题是 当我定义时,在Catalina.properties中使用另一个新变量。

在Catalina.properties中,我拥有:

myLib = D:/proj/library
myLibDir=${myLib}/myDir

然后在web.xml中使用$ {myLib}没问题,可以使用字符串 D:/ proj / library 正确解析var,但是使用$ {myLibdir}的结果与预期不符< strong> D:/ proj / library / MyDir ,但 $ {myLib} / myDir

这很奇怪,因为在Catalina.properties中有例如:

commons.loader="${catalina.base}/lib,..."

这正是我所需要的...

但似乎无法使用新变量。