gpt4 book ai didi

Tomcat 7/8 : Reuse of Environment variables in server. xml

转载 作者:行者123 更新时间:2023-11-28 21:47:24 31 4
gpt4 key购买 nike

对于一些使用 tomcat 的项目,我们在环境变量中外部化了一些配置(URL 等)。

例子:/usr/share/tomcat7/conf/other-urls.xml

 <!-- LDAP -->
<Environment name="remote/com/mycompany/ldap" type="java.lang.String" value="ldaps://myldap.mycompany.net"/>

服务器.xml

 <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE server-xml [
<!ENTITY Other-URLs SYSTEM "/usr/share/tomcat7/conf/other-urls.xml">
]>
<Server port="8005" shutdown="SHUTDOWN">
...
<GlobalNamingResources>
&Other-URLs;
</GlobalNamingResources>
....
<Service name="Catalina">
....
<Engine name="Catalina" defaultHost="localhost" jvmRoute="4996b9646dc">

<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="${remote/com/mycompany/ldap}"
userPattern="(|(uid={0},ou=People,dc=mycompany,dc=net)(uid={0},ou=Other,dc=mycompany,dc=net))"
....
/>

...

此配置不起作用(javax.naming.NamingException:无法解析 url:${remote/com/mycompany/ldap})。当我在 connectionURL 中写入正确的 LDAP-URL 时,它就可以工作了。我尝试了不同的方法:使用 ${..},不使用,使用 java:/env/comp,不使用。

有没有办法在 server.xml 中重用环境变量?

感谢任何提示。

再见 彼得·舒特

最佳答案

您可以尝试通过系统属性 (-Dname=value) 来解决这个问题,而不是通过 XML 来解决。有一个 article which explains this in a more detailed fashion .

关于Tomcat 7/8 : Reuse of Environment variables in server. xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29559154/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com