weblogic server对应用程序类加载的机制
weblogic server 类加载以应用程序的概念为核心.应用程序通常打包为企业归档文件。
其中包含应用程序类.ear文件中的所有内容均被视为同一个应用程序的组成部分。下面的
内容可以作为ear的一部分,也可以作为独立应用程序进行加载。
EJB jar文件.
web应用程序war文件.
资源适配器RAR文件.
如果分别部署ejb和web应用程序,会将它们视为两个应用程序.如果将它们一起部署到
ear文件中,则它们是一个应用程序。可以将模块共同部署到一个ear文件内,以便系统将它
们视为同一个应用程序的各部分.
每个应用程序都有其自己的类加载器层次结构,该层次结构的父级是系统类路径类加载器.
它可以隔离应用程序,以使应用程序A无法查看应用程序b的类加载器或类.在层次结构类加
载器中,不存在同级或同伴的概念.应用程序代码只能看到与该应用程序(或模块) 关联的类
加载器所加载的类。这允许weblogic server在同一个jvm中承载多个隔离的应用程序.
应用程序类加载器层次结构
部署应用程序时,weblogic server自动创建类加载器的层次结构.该层次结构的根类加
载器将加载应用程序中的所有EJB JAR文件将针对每个web应用程序war文件创建子类加载器.
由于web应用程序通常会调用ejb,所以weblogic server应用程序类加载器体系结构允许JSP
和servlet查看其父类加载器的ejb接口.这种体系结构还允许在不重新部署ejb层的情况下重新部
署web应用程序. 实际上,通常会更改jsp文件和servlet,而不更改ejb层.
如果您的应用程序包含使用ejb的servlet和jsp.
将servlet和jsp打包在WAR文件中.
将enterprise javabean打包在ejb jar文件中.
将war 和jar文件打包在ear文件中.
部署EAR文件.
尽管可以分别部署war和jar文件,但如果将它们共同部署于EAR文件内,则会生成允许servlet和jsp
查找EJB类的类加载器安排.如果分别部署WAR和JAR文件,weblogic将会为它们创建同级类加载器,这
表明您必须在war文件中包含EJBHome接口和远程接口,且weblogic server必须针对ejb调用rmi存根和
骨架类,如同ejb客户端和实现类位于不同jvm一样。