我對Tomcat並不太熟悉,但我的團隊繼承了一個複雜的項目,該項目圍繞着在許多服務器上託管在Tomcat中的Java Servlet進行。自定義配置管理軟件用於寫出server.xml,寫入server.xml的各種資源(連接池,bean,服務器變量等)配置servlet。這一切都很好。Tomcat中資源的通配符Servlet的context.xml
但是,某些資源的名稱並未提前知道。例如,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"/>
不過,我一直無法弄清楚,如果這是可能的,或者什麼的正確語法可能。任何人都可以提出更好的方法來解決這個問題嗎?
這回答了問題的一部分。似乎沒有辦法用任何形式的名稱通配符來定義ResourceLink。也許我們可以嘗試通過以某種方式將資源捆綁在一起來解決這個問題,以便所有匿名者都通過context.xml作爲單個資源。 – DonGar 2008-09-17 03:45:12