Glassfish 3.1.1使用jar文件的类加载器顺序

时间:2012-05-03 17:44:08

标签: java glassfish classloader

假设我有2个同名的jar文件,我将一个放入glassfish / lib文件夹,另一个放入glassfish / domains / domain / lib(或glassfish / domains / domain / applibs)。

这两个jar文件具有相同的类名,比如A和方法名,比如说method1,但是方法1的实现方式不同。

当我启动Glassfish服务器并在我的应用程序中调用A.method1()时,会执行哪个方法?

我做了一个测试,看起来glassfish / lib中的方法被执行了。有没有办法让其他方法执行?

1 个答案:

答案 0 :(得分:1)

我在tomcat上做了一些相同的事情,其中​​我将一个实现放在Tomcat \ lib目录中,另一个放在application \ lib目录中。

如果application \ lib在server \ lib目录中包含某个实现其给定的首选项,而在没有application \ lib的情况下,则使用server \ lib来运行该应用程序。

因此,在您的情况下,即域,如果两个实现都存在,似乎域\ lib A.method1()将会运行。