- 浏览: 1583356 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
jsrgzhangzhiyong:
关于null值的转换还是感觉不太友好,就像 mapstruct ...
我也造了个轮子:BeanMapping(属性拷贝) -
he037:
a417930422 写道引用使用EPHEMERAL会引出一个 ...
基于zookeeper的分布式lock实现 -
seancheer:
qianshangding 写道首先节点启动后,尝试读取本地的 ...
zookeeper学习记录三(session,watcher,persit机制) -
雪夜归人:
您好,我想咨询一下,开源的canal都能支持mysql的哪些版 ...
Canal BinlogChange(mysql5.6) -
zhoudengyun:
copy 一份做记录,后续学习,请知悉
阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
1. 概念介绍
UCL : org.jboss.mx.loading.UnifiedClassLoader3 ,它继承标准的java.net.URLClassLoader,覆盖了标准parent delegation模型以使用共享class和资源仓库
仓库(responsitory): org.jboss.mx.loading.UnifiedLoaderRepository3。
平面模型:为了热deploy模块的需要,JBoss实现了自己的类装载器UnifiedClassLoader3,一般来说,一个顶层的deployment就有一个UnifiedClassLoader3实例为之工作。一个deployment所装载的类,其他 deployment是可见的。全局唯一的UnifiedLoaderRepository3实例用于管理这些类,以及装载它们的UnifiedClassLoader3。UnifiedLoaderRepository3实例和UnifiedClassLoader3实例是一对多的关系。
2. jboss classloader机制
name="jboss.management.local:j2eeType=J2EEDomain,name=Manager">
<attribute name="MainDeployer">jboss.system:service=MainDeployer</attribute>
<attribute name="SARDeployer">jboss.system:service=ServiceDeployer</attribute>
<attribute name="EARDeployer">jboss.j2ee:service=EARDeployer</attribute>
<attribute name="EJBDeployer">jboss.ejb:service=EJBDeployer</attribute>
<attribute name="RARDeployer">jboss.jca:service=RARDeployer</attribute>
<attribute name="CMDeployer">jboss.jca:service=ConnectionFactoryDeployer</attribute>
<attribute name="WARDeployer">jboss.web:service=WebServer</attribute>
<attribute name="CARDeployer">jboss.j2ee:service=ClientDeployer</attribute>
<attribute name="MailService">jboss:service=Mail</attribute>
<attribute name="JMSService">jboss.mq:service=DestinationManager</attribute>
<attribute name="JNDIService">jboss:service=Naming</attribute>
<attribute name="JTAService">jboss:service=TransactionManager</attribute>
<attribute name="UserTransactionService">jboss:service=ClientUserTransaction</attribute>
<attribute name="RMI_IIOPService">jboss:service=CorbaORB</attribute>
</mbean>
首先看一下各种类型的deployer。不同的deployer是根据文件的后缀进行区分。MainDeployer起到一个controller的作用,根据不用的后缀分发到不同的deployer进行处理。如果是*.ear,则会由EARDeployer进行载入。
应用的加载时一个 Top Level Deployer + Top Level Ucl。 举个例子,比如发布一个a.ear应用,ear应用中会包含一个*.war。这时候就会涉及deployer选择问题。jboss采取的原则就是按Top Level,根据最顶层的应用选择deployer,继而也有了top level ucl的概念。由顶级的ucl来加载整个应用。这里需要注意的是war的部署有点特别。它只是将自身添加到ucl的classpath域中,而war下的WEB-INF/lib/*.jar,则是由WebAppClassloader来加载。可调整ear下的 META-INF/jboss-service.xml中的UseJbossWebLoader属性。如果设置为true,故名思义就是用ucl来加载war下的jar包。否则就是采用独立的classloader加载。
再看一下ucl的加载过程,首先会调用仓库去loadclass,仓库在查找无果的情况下会回调各自的UCL去加载本地库。
3. jboss scope配置
ClassLoadingConfiguration一书中描述:
意思是说,scope配置只能是顶级下的配置,比如一个.sar中包含.war都配置了scope,只有.sar下的 META-INF/jboos-service.xml才有效。这也与前面 TOP level UCL + TOP Devloper相对应。
针对.sar,你可以在jboss-service.xml中,添加如下配置:
<loader-repository> com.example:loader=unique-archive-name </loader-repository>
</server>
针对.ear,你可以在jboss-app.xml添加如下配置:
<loader-repository>com.example:loader=unique-archive-name</loader-repository>
</jboss-app>
针对 .war,你可以在jboss-web.xml添加如下配置:
<class-loading java2ClassLoadingCompliance='true'>
<loader-repository>
com.example:loader=unique-archive-name
<loader-repository-config>
java2ParentDelegaton=true
</loader-repository-config>
</loader-repository>
</class-loading>
</jboss-web>
注意,在最新的4.2.1版本中,<class-loading>标签已经不再使用,你可以直接配置:
<loader-repository> com.example:loader=unique-archive-name </loader-repository>
</jboss-web>
针对这两种方式的配置,4.0.5版本都支持。
针对典型的ear+war应用,*.ear/META-INF/jboos-service.xml,用于调整war的加载方式。
loading model should be used over the servlet 2.3 web container first
model.
-->
<attribute name="Java2ClassLoadingCompliance">false</attribute>
<!-- A flag indicating if the JBoss Loader should be used. This loader
uses a unified class loader as the class loader rather than the tomcat
specific class loader.
The default is false to ensure that wars have isolated class loading
for duplicate jars and jsp files.
-->
<attribute name="UseJBossWebLoader">false</attribute>
配置UseJBossWebLoader为false,则webapp的加载通过独立于jboss的classloader进行加载。
发表评论
-
yugong QuickStart
2016-03-05 01:52 0几点说明 a. 数据迁移的方案可参见设计文档,oracl ... -
阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具
2016-03-05 18:29 6339背景 08年左右,阿里巴巴开始尝试MySQL的相关 ... -
愚公performance
2016-03-02 17:29 0性能测试 全量测试 场景1 (单主键, ... -
yugong AdminGuide
2016-03-02 16:40 0环境要求 操作系统 数据库 迁移方案 部署 ... -
Tddl_hint
2014-01-27 13:52 0背景 工作原理 Hint格式 direct模 ... -
tddl5分库规则
2014-01-26 14:41 0背景 工作原理 构建语法树 元数据 基于 ... -
tddl5优化器
2014-01-22 15:12 0背景 工作原理 构建语法树 元数据 抽象语 ... -
Canal BinlogChange(mariadb5/10)
2014-01-20 17:25 4447背景 先前开源了一个 ... -
asynload quickstart
2013-10-08 22:49 0几点说明: 1. asyncload是做为一个j ... -
网友文档贡献
2013-09-18 15:50 01. Otter源代码解析系列 链接:http://e ... -
Manager配置介绍
2013-09-16 13:00 0通道配置说明 多种同步方式配置 a. 单向同步 ... -
canal&otter FAQ
2013-09-05 17:30 0常见问题 1. canal和 ... -
阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
2013-08-22 16:48 40208项目背景 阿里巴巴B2B公司,因为业务的特性 ... -
Otter AdminGuide
2013-08-19 11:06 0几点说明 otter系统自带了manager,所以简化了一 ... -
Otter高可用性
2013-08-17 23:41 0基本需求 网络不可靠,异地机房尤为明显. man ... -
Otter数据一致性
2013-08-17 23:39 0技术选型分析 需要处理一致性的业务场景: 多地修改 ( ... -
Otter扩展性
2013-08-17 22:20 0扩展性定义 按照实现不同,可分为两类: 数据处理自定 ... -
Otter双向回环控制
2013-08-17 21:37 0基本需求 支持mysql/oracle的异构数据库的双 ... -
Otter调度模型
2013-08-17 20:13 0背景 在介绍调度模型之前,首先了解一下otter系统要解 ... -
Otter Manager介绍
2013-08-16 11:16 0背景 otter4.0发布至 ...
相关推荐
jboss服务器配置https环境的详细方法
JBoss篇:安装与配置
JBoss has always had a unique way of dealing with classloading, and the new classloading layer that comes with Microcontainer is no exception (keep in mind that you can use Microcontainer without ...
Jboss的配置,包含常见错误,都经过实际测试。
[Packt Publishing] JBoss AS 7 配置部署管理教程 (英文版) [Packt Publishing] JBoss AS 7 Configuration, Deployment and Administration (E-Book) ☆ 出版信息:☆ [作者信息] Francesco Marchioni [出版机构...
如何在MyEclipse配置Jboss
本文以图文并茂的形式,简单阐述了JBoss在MyEclipse中的配置,及各参数的含义!
Jboss配置虚拟路径
NULL 博文链接:https://blueprint86.iteye.com/blog/998660
JBOSS简单配置 设置控制台登录窗口 修改JBOSS应用服务器连接的数据库和端口 WAR文件的部署
NULL 博文链接:https://lionelf.iteye.com/blog/1532452
lib 一些 JAR , JBoss 启动时加载,且被所有 JBoss 配置共享。(不要把你的库放在这里) server 各种 JBoss 配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。 JBoss 包含 3 个默认的配置: ...
jboss系统的一些文件夹结构说明,主要的配置文件说明文档。负载均衡配置。
pattern配置: %a - Remote IP address %A - Local IP address %b - Bytes sent, excluding HTTP headers, or '-' if zero %B - Bytes sent, excluding HTTP headers %h - Remote host name (or IP address if...
配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss应用服务器配置JBoss...
Jboss服务器常用配置
Jboss + 优化配置 Jboss内存优化 Jboss数据库连接池优化 Jboss部署目录优化 Jboss应用安全加固
手把手系列-Eclipse+JBossIDE+JBoss开发环境配置
Jboss的配置安装Jboss的配置安装Jboss的配置安装Jboss的配置安装Jboss的配置安装
JBOSS配置.rarJBOSS配置.rarJBOSS配置.rarJBOSS配置.rarJBOSS配置.rarJBOSS配置.rar