![](/img/trans.png)
[英]IBM Websphere 8.5 not adding web container custom properties to System
[英]best place to put properties file in IBM websphere 8.5?
在我們現有的應用程序屬性文件嵌入在jar文件中,我們決定將屬性文件移到耳朵外(應用程序),在IBM websphere 8.5中放置屬性文件的最佳位置是什么? 這樣我就可以使用WAS環境變量檢索路徑,並且文件應該可用於集群中的所有節點。
在討論中我只有2美分。
為了快速簡便的解決方案,我將屬性文件放在WAS_HOME /類中,而不是PROFILE_ROOT /屬性 - 這個文件夾位於類路徑上,無論如何它都用於存儲屬性。 / classes的一個好處是作用於配置文件,因此如果您有不同的配置文件,例如測試或集成,它們可能有不同的設置。
對於“純粹的”WebSphere解決方案,這將允許通過控制台管理屬性,您可以檢查資源環境提供程序(但它相當長而復雜的解決方案): http : //www.ibm.com/developerworks/websphere/library/techarticles /0611_totapally/0611_totapally.html
與(目前)接受的答案相反,我認為在WAS_HOME/classes
下放置任何東西是一種沮喪的做法。 IBM通常使用此目錄來放置被視為WAS及相關產品“內部”的類/ JAR文件(例如,某些版本的WebSphere Portal將JAR文件放在該目錄中)。
此外,在WAS_HOME/classes
放置項目使這些項目可用於在此WAS安裝中創建的所有WAS配置文件上運行的所有應用程序 。 你無法改變這種行為; 這就是WAS的設計方式。 這是另一個理由得出結論WAS_HOME/classes
應保留給WAS內部使用。
此參數可以推廣到WAS_HOME
下的幾乎任何位置:用戶文件(即,軟件供應商未提供的文件)不應駐留在由產品的安裝程序/卸載程序管理的位置。 WAS_HOME
層次結構由IBM Installation Manager(或WAS安裝程序,具體取決於所討論的WAS版本)進行管理。 我不會把任何文件放在那里。
現在,回到你的問題。 如果您必須將您的屬性文件“松散”(即,不包含在任何特定的EAR中),您最好的辦法是執行以下操作:
將共享庫附加到您希望屬性文件可用的服務器或應用程序:
試試這個
我使用的另一個解決方案是向應用程序web.xml添加URL資源引用。 例如“url / properties”。
然后使用管理控制台在Websphere中定義URL,以指向“file:///dev.properties”或“file:///test.properties”。
然后在部署時,將URL引用映射到相應的websphere URL定義。
現在,您的代碼可以只對URL進行jndi查找。
這樣做的好處是,您可以部署單個代碼庫,並在部署時自定義指向不同的URL。
您可以使用類加載器目錄。 我會在$ WEBSPHERE_HOME / AppServer / classes下使用目錄類(您可能需要創建)並在那里刪除您的屬性。 您應該能夠從任何應用程序/服務器中找到它們。
如果屬性值不是特定於群集的一個節點或屬性值是密碼,則數據庫是放置屬性的最佳位置。 對於像密碼這樣的屬性,我建議你在WAS中將屬性值設置為jndi屬性。 使用commons配置從兩個源讀取。 在您的代碼庫中有一個.property文件,它將覆蓋db和jndi中的值。 這樣,您的開發人員可以在開發中覆蓋db / jndi值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.