簡體   English   中英

將屬性文件放在IBM websphere 8.5中的最佳位置?

[英]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中),您最好的辦法是執行以下操作:

  1. 在WAS目錄樹之外創建一個目錄並將文件放在那里。
  2. 在WAS中,創建共享庫定義。
  3. 將您創建的目錄添加到共享庫。
  4. 將共享庫附加到您希望屬性文件可用的服務器或應用程序:

    • 要將共享庫附加到服務器,請在服務器上創建一個新的Classloader元素,並將共享庫附加到該服務器上。
    • 要將共享庫附加到應用程序,請通過在管理控制台中編輯EAR的屬性或通過腳本化部署參數來執行附件。

試試這個

  1. 創建一個目錄(您選擇的位置)以保存屬性文件。
  2. 將目錄添加到WebSphere CLASSPATH。
  3. 從CLASSPATH加載屬性文件。

我使用的另一個解決方案是向應用程序web.xml添加URL資源引用。 例如“url / properties”。

然后使用管理控制台在Websphere中定義URL,以指向“file:///dev.properties”或“file:///test.properties”。

然后在部署時,將URL引用映射到相應的websphere URL定義。

現在,您的代碼可以只對URL進行jndi查找。

這樣做的好處是,您可以部署單個代碼庫,並在部署時自定義指向不同的URL。

您可以使用類加載器目錄。 我會在$ WEBSPHERE_HOME / AppServer / classes下使用目錄類(您可能需要創建)並在那里刪除您的屬性。 您應該能夠從任何應用程序/服務器中找到它們。

檢查Class Loaders頁面。

如果屬性值不是特定於群集的一個節點或屬性值是密碼,則數據庫是放置屬性的最佳位置。 對於像密碼這樣的屬性,我建議你在WAS中將屬性值設置為jndi屬性。 使用commons配置從兩個源讀取。 在您的代碼庫中有一個.property文件,它將覆蓋db和jndi中的值。 這樣,您的開發人員可以在開發中覆蓋db / jndi值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM