我对 Tomcat 并不太熟悉,但我的团队继承了一个复杂的项目,该项目围绕着一个 Java Servlet,该 Java Servlet 托管在多个服务器上的 Tomcat 中。使用自定义配置管理软件写出server.xml,写入server.xml的各种资源(连接池、bean、服务器变量等)配置servlet。这一切都很好。
但是,某些资源的名称事先并不知道。例如,Servlet 可能需要访问操作员配置的任意数量的“匿名器”。每个匿名者都有一个与之关联的唯一名称。我们使用类似于以下的 java bean 创建和配置每个匿名器:
<Resource
name="bean/Anonymizer_toon"
type="com.company.tomcatutil.AnonymizerBean"
factory="org.apache.naming.factory.BeanFactory"
className="teAnonymizer"
databaseId="50"
/>
<Resource
name="bean/Anonymizer_default"
type="com.company.tomcatutil.AnonymizerBean"
factory="org.apache.naming.factory.BeanFactory"
className="teAnonymizer"
databaseId="54"
/>
但是,这似乎要求我们在 Servlet 的 context.xml 文件中为每个可能的资源名称提前明确条目。我想用通配符替换显式 context.xml 条目,或者知道是否有更好的解决方案来解决此类问题。
目前:
<ResourceLink name="bean/Anonymizer_default"
global="bean/Anonymizer_default"
type="com.company.tomcatutil.AnonymizerBean"/>
<ResourceLink name="bean/Anonymizer_toon"
global="bean/Anonymizer_toon"
type="com.company.tomcatutil.AnonymizerBean"/>
替换为:
<ResourceLink name="bean/Anonymizer_*"
global="bean/Anonymizer_*"
type="com.company.tomcatutil.AnonymizerBean"/>
但是,我无法弄清楚这是否可能或正确的语法可能是什么。任何人都可以就更好的方法来处理这个问题提出任何建议吗?