2008-09-16 54 views
2

我對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"/> 

不過,我一直無法弄清楚,如果這是可能的,或者什麼的正確語法可能。任何人都可以提出更好的方法來解決這個問題嗎?

回答

1

我還沒有遇到過這個,但它可能更容易擁有像AnonymizerService作爲資源,揭示所有不同的所需的AnonymizerBeans。這樣你就不會遇到通配符問題,只需要向Web應用程序發佈一個資源,然後回到定義良好並且易於理解的路徑。

希望可以幫助大約一個月後的最初問題...

1

我不知道這是否是你需要的,但也許你可能想調查爲Tomcat創建自己的自定義資源工廠。這裏是通過Tomcat的所有東西資源的一般文檔:Tomcat Resources

+0

這回答了問題的一部分。似乎沒有辦法用任何形式的名稱通配符來定義ResourceLink。也許我們可以嘗試通過以某種方式將資源捆綁在一起來解決這個問題,以便所有匿名者都通過context.xml作爲單個資源。 – DonGar 2008-09-17 03:45:12

相關問題