1

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

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

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

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

4

1 回答 1

1

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

如果 application\lib 包含一些实现,则其优先于 server\lib 目录,而在没有 application\lib 的情况下,server\lib 用于运行应用程序。

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

于 2012-05-03T18:37:41.430 回答