weblogic类装载器_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4062 | 回复: 0   主题: weblogic类装载器        上一篇   下一篇 
zhongming.wu
注册用户
等级:上等兵
经验:128
发帖:5
精华:0
注册:1970-1-1
状态:离线
发送短消息息给zhongming.wu 加好友    发送短消息息给zhongming.wu 发消息
发表于: IP:您无权察看 2017-10-23 15:02:04 | [全部帖] [楼主帖] 楼主

java中类的装载采用代理机制,即子装载器如果需要装载一个类文件,首先会将此任务提交给父装载器,如果父装载器找不到此类文件,才有子装载器来装载类文件,如果子装载器也找不到,那么就会报告ClassNotFoundException异常。
1
Weblogic允许定制的类装载器,同时也有一个默认的类装载器。其默认的装载器的结构分层如下:
当部署一个应用的时候,weblogic server会自动创建一个具有层次结构的类装载器。Application Classloader负责装载应用中的所有的EJB JAR文件,Web Application Classloader负责装载所有的Web application 中的WAR 文件(所有得jsp文件除外),
Jsp Classloader
负责装载Web application 中的所有的jsp 文件。
这样的分层结构有一个好处,就是在JspServlet中可以直接访问EJB的接口。这种上层装载EJB,下层装载servlet等,最下面装载jsp文件的结构,使得经常变动的jspservlet等可以被重新装载而不会涉及到EJB层。
在这种默认的类装载器结构下,有一点需要提出的是:
1
、我们的应用必须打包成一个EAR文件,才会允许我们应用中的jspservlet文件直接访问ejb,如果将WARJAR文件分别打包,Weblogic server会为他们分别生成一个类装载器,作为兄弟节点,这时如果需要在jsp或者servlet中使用ejb,就必须将EJBHome接口与remote接口打包到WAR中才可以。后面这种情况,适合用在将EJB的客户端和EJB部署在不同的JVM

2web application classloader中,不会装载jsp文件,jsp文件由web application classloader的子装载器Jsp classloader负责装载,因为jsp文件经常的变动,通过为jsp设立一个单独的classloader可以避免对jsp的装载影响到其他的java class或者ejb

默认装载器的优点:
1
、调用ejb的时候可以采用call-by-referrence的方式;
2
、允许web module独立的装载,不影响其它的web module;
通过在将整个应用打包成一个EAR文件,可以方便的不用再web module中包含EJBhomeremote接口,就可以方便的通过call-by-referrence来调用ejb;





赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论