Java 为什么EAR中的多个ejb JAR共享同一个类加载器,而每个WAR都有自己的类加载器?

Java 为什么EAR中的多个ejb JAR共享同一个类加载器,而每个WAR都有自己的类加载器?,java,jakarta-ee,ejb,classloader,Java,Jakarta Ee,Ejb,Classloader,嗯,标题差不多是这样写的:)。无论我读到什么,我都知道设计EJB共享一个类加载器,但我愿意理解它背后的原因。非常感谢您的指点。每个WAR都是一个独立的模块。EAR根目录中的每个JAR以及其中的WAR文件都是相关模块。因此,它们使用相同的类加载器是有意义的。在多个WAR文件之间共享类加载器是不可行的。您所说的相关模块是什么意思?根据我的理解,EAR根的其他JAR是由EAR类装入器装入的。但是所有EJB都由一个单独的EJB类加载器加载。所以EAR根目录下的其他jar和ejb不共享同一个classlo

嗯,标题差不多是这样写的:)。无论我读到什么,我都知道设计EJB共享一个类加载器,但我愿意理解它背后的原因。非常感谢您的指点。

每个WAR都是一个独立的模块。EAR根目录中的每个JAR以及其中的WAR文件都是相关模块。因此,它们使用相同的类加载器是有意义的。在多个WAR文件之间共享类加载器是不可行的。

您所说的相关模块是什么意思?根据我的理解,EAR根的其他JAR是由EAR类装入器装入的。但是所有EJB都由一个单独的EJB类加载器加载。所以EAR根目录下的其他jar和ejb不共享同一个classloader我想我有点误解了你的问题,我没有信心正确回答这个问题。