2009-10-22 93 views
2

我的商店已經運行Oracle的應用服務器好幾年了。因此,在我們更好地瞭解之前,我們已經制定了將應用程序配置文件存儲在WAR文件之外的規範,並且使用特定於Oracle的部署描述符將應用程序特定的配置目錄添加到每個應用程序。這個部署描述符允許我們在應用層添加classpath元素,而不必在WAR中包含所有的依賴關係。將項目添加到WebLogic 10中的應用程序(WAR)類路徑?

現在我們正面臨升級到WebLogic 10.3,我需要爲依賴外部配置的應用程序找到替代方案。

WebLogic中是否有方法將外部罐或目錄添加到應用程序級別的類加載器中?我已經找到了將它們添加到系統類加載器的方法,但我更願意將它們添加到應用程序級別,以避免在修改部署描述符之外重新使用應用程序。

在WebLogic 10中可以這樣做嗎?

回答

0

據我所知,這是Weblogic無法實現的。外部配置文件確實需要添加到system classpath。您可以稍微調整一下類加載器(請參閱filteringloading order),但沒有任何內容允許在OAS的「應用程序級別」添加依賴項。爲此,如果上述場景不是選項,則必須運行分離的域。

1

可以通過使用共享庫的部署來引用外部罐子。

粗略地說,外部罐子應該被「部署」爲庫。然後可以使用庫引用描述符從應用程序的weblogic-application.xml中引用它們。

參考此doc

雖然,我不認爲你可以提供外部目錄/配置文件,而不是通過使用系統類路徑。

5

經過進一步研究,我們瞭解了WebLogic的Generic File Loading Overrides功能。

此功能允許我們爲我們的應用程序使用部署計劃併爲應用程序指定一個「配置根」。在config-root中,我們可以創建一個名爲「AppFileOverrides」的目錄並覆蓋WEB-INF/classes或WEB-INF/lib目錄中的任何文件。

該功能通過在Web Application類加載器之前注入一個類加載器來實現,因此,在綁定到Web應用程序存檔之前,將從類路徑加載的任何資源都將在此類加載器中找到。

使用此功能,我們可以添加根本不存在於war文件中的配置文件(理論上講,類)。因此,我們能夠模擬將配置文件保存在戰爭之外的功能。展望未來,我鼓勵我們的開發人員將配置包含在war文件中,但這對於傳統應用程序以及需要更改給定部署目標(dev與產品)配置的情況很適用,

相關問題