2012-05-03 26 views
1

假設我有2個jar文件具有相同的名稱,我把一個放入glassfish/lib文件夾,另一個放入glassfish/domains/domain/lib(或glassfish/domains /域/ applibs)。Glassfish 3.1.1類加載器訂單與jar文件

這2個jar文件具有相同的類名,比如說A和方法名,比方說method1,但方法1的不同實現。

當我啓動Glassfish服務器並在我的應用程序中調用A.method1()時,哪個方法得到執行?

我做了一個測試,它似乎在glassfish/lib中的方法得到執行。有沒有辦法讓其他方法執行?

回答

1

我在tomcat上做了一些相同的事情,其中​​我在Tomcat \ lib目錄中放置了一個實現,另一個在application \ lib目錄中。

如果應用程序\ lib包含某些實現,它優先於服務器\ lib目錄,而在沒有application \ lib的情況下,服務器\ lib用於運行該應用程序。

因此,在你的情況下,即域,似乎域\ lib A.method1()將運行,如果兩個實現存在。

+0

我測試過,這是另一個方法被調用:( – neo