在TOMCAT catalina.properties中,可以定义自定义变量:
myLib = D:/proj/library
但是如果我使用前面的变量定义了另一个变量,则无法正常工作:
myLibDir = ${myLib}/dir
myLibDir无法按我的预期使用 D:/ proj / library / dir 进行解析 但使用字符串'$ {myLib} / dir'
如何使用antoher定义变量???
答案 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,..."
这正是我所需要的...
但似乎无法使用新变量。