`

jboss 加载包顺序

阅读更多

经过测试得出,对ear包加载的顺序是按照包名的首个字母的顺序来加载的,如果在加载过程中出现包调用包的情况时,这样要注意包名引起的问题了。

问题:不同后缀的包的加载顺序是怎样?

         ear包内的jar包、war包的加载顺序又是怎样?

         包内的class文件以及其他文件的加载顺序又是怎样?

 

待续。。。。

 

 

对于问题的回答:

 

1、不同后缀的包的加载顺序是怎样?

答: 转:http://tanyankai.iteye.com/blog/569627

 

 

以下说到的版本是jboss-4.2.3.GA

并且假设JBoss安装在D:\Java\jboss-4.2.3.GA

JBoss部署的时候支持很多种格式打的包,比如说我们从deploy目录下面会看到有后缀名为deployer、sar,war,rar,xml ... (后来发现其实JBoss部署支持的格式,远远不止这些)

但是这些不同格式的应用是怎样的一个加载顺序呢?或者说有没有什么规律?带着这个疑问我在Jboss启动的时候仔细的看了一下命令行中的信息,发现两个信息:

1、  最先加载的是后缀名为deployer目录下应用或者服务;

2、  每次都会等有相同后缀名的应用(或者目录下的应用)完全加载完之后才会去加载另外一种后缀名

发现这两点之后,我就找了一下Jboss的一些配置文件,原来在D:\Java\jboss-4.2.3.GA\server\default\conf\xmdesc org.jboss.deployment.MainDeployer-xmbean.xml文件里面有这么一段内容:

 

 

 

<attribute access='read-write' setMethod='setEnhancedSuffixOrder' getMethod='getEnhancedSuffixOrder'>  
      <description>Allows the override of the suffix order declared by subdeployers, using the syntax [order:]suffix   
      </description>  
      <name>EnhancedSuffixOrder</name>  
      <type>[Ljava.lang.String;</type>  
      <!--   
         Statically set one or more enhanced suffix orders, independent of the value proposed by subdeployers.   
         Some deployers may also allow the suffixes/orders to be set locally, so that's preferable too.   
         For reference, this is the list of enhanced suffixes likely to be set by deployers (it may not   
         be completely up-to-date, or there can be user-defined deployers).   
            
         050:.deployer,050:-deployer.xml,100:.aop,100:-aop.xml,150:.sar,150:-service.xml,200:.  ,250:.rar,300:-ds.xml,350:.har,400:.jar,400:.ejb3,400:.par,500:.war,600:.wsr,650:.ear,700:.jar,750:.zip,800:.bsh,900:.last   
            
         Until we resolve some startup issues, we'll setup some static enhanced suffix orders bellow   
         and leave the rest of the suffixes contributed dynamically by registering deployers.   
      -->  
      <descriptors>  
         <value value="250:.rar,300:-ds.xml,400:.jar,500:.war,550:.jse,650:.ear,800:.bsh"/>  
      </descriptors>  
   </attribute>  

 

 如果我们需要在JBoss下面部署很多应用,并且有些时候这些应用相互之间需要有先后启动顺序,我们可以通过以下两种方式做到。
1、  根据实际需要,部署到不同的子目录下面
2、  通过修改下面value值来改变JBoss默认加载顺序

 

<descriptors>  
     <value value="250:.rar,300:-ds.xml,400:.jar,500:.war,550:.jse,650:.ear,800:.bsh"/>  
</descriptors>  

 

 

 

 

问题2:ear包内的jar包、war包的加载顺序又是怎样?

答:经过测试,ear包内的包加载顺序,也是按照org.jboss.deployment.MainDeployer-xmbean.xml 这个文件设定的顺序来加载的。

 

分享到:
评论

相关推荐

    JBOSS启动顺序、JBOSS占用的端口

    5. **部署应用**:JBoss会扫描`deployments`目录下的应用包(WAR、EAR、JAR等),并进行自动部署。 6. **启动监听器**:JBoss会启动HTTP、HTTPS、JMX、IIOP等服务的监听器,以便接收和处理请求。 7. **最后的准备...

    JBOSS log4j 配置

    这些级别是有顺序的,DEBUG ,分别用来指定这条日志信息的重要程度。明白这一点很重要,这里 Log4j 有一个规则:假设 Loggers 级别为 P,如果在 Loggers 中发生了一个级别 Q 比 P 高,则可以启动,否则屏蔽掉。 ...

    jboss 5 原理 2 classloader

    开发者可以通过配置来定义类加载顺序,处理不同模块间的类冲突,以及更好地管理类的可见性。例如,通过VFS,开发者可以方便地控制类库的加载路径,实现热部署,或者隔离不同应用程序的类空间,防止类版本冲突。 ...

    JBoss 引用 module 说明

    模块间的依赖关系使得JBoss能正确地管理类加载顺序和避免类冲突。 2. **创建模块** 创建一个新模块通常涉及以下几个步骤: - 定义模块XML:在`modules`目录下创建相应的目录结构,并编写`module.xml`,声明模块名...

    windows下JBOSS5.1.0部署web应用

    可以通过修改`$JBOSS_HOME/server/default/conf/jboss-service.xml`中的`MBean`配置来改变加载顺序。 6. **设置默认字符集**: 为确保正确的字符编码,可以在`$JBOSS_HOME/server/default/conf/jboss-system....

    JBoss_Rules学习

    包声明中可以包含导入 (imports)、全局变量 (globals)、函数 (functions) 和规则 (rules)。 - **示例代码**: ```plaintext package com.sample import java.util.List import com.sample.Cheese global List ...

    JBoss 将WEB应用发布为默认应用程序

    默认应用程序是指当用户在浏览器中输入服务器IP时,JBoss服务器会自动加载并显示的第一个应用。通常,默认应用是服务器启动时自动部署的首个WAR或EAR文件。 描述中提到的方法简单明了,主要步骤包括: 1. **编辑...

    JBoss Rules入门资料集锦

    4. **规则触发与冲突解决**:如果多个规则可以同时触发,Drools使用优先级或冲突解决策略来决定执行顺序。 5. **事件处理**:Drools支持事件驱动的规则,允许系统对特定事件做出反应。 6. **决策表(Decision ...

    jbossAS7开发指南

    3. **类加载优先级**: JBoss AS7 中定义了一套清晰的类加载规则,确保不同级别的类加载器能够按照正确的顺序加载类。 4. **WAR 文件类加载**: 当部署 WAR 文件时,JBoss AS7 会为每个 WAR 文件创建一个模块,并根据...

    Jboss_Clustering_Guide

    首先需要下载并安装相应的软件包,然后配置 Apache 以加载 mod_jk 模块,并为每个工作节点设置相应的配置。 - **HTTP 会话状态复制**:为了确保 HTTP 会话的一致性,JBoss 支持会话状态的复制。这种方式可以避免由于...

    JBoss7配置指南及管理员手册

    - **启动时间缩短**:通过优化内部组件的加载顺序和方式,显著减少了启动所需的时间。 - **内存占用减少**:通过采用更高效的数据结构和算法,降低了内存占用,提高了资源利用率。 - **模块化设计**:采用了模块化的...

    Jboss7快速入门手册

    3. **类加载优先级**:JBoss7中类加载遵循一定的优先级顺序,从系统依赖到本地资源,这种机制确保了正确的类加载顺序,减少了潜在的类加载问题。 4. **隐式模块依赖**:虽然模块默认是隔离的,但在某些情况下,如...

    jboss-seam 注解

    - **PAGE**:页面加载时创建并保留到页面关闭。 - **CONVERSATION**:保持整个对话过程中的状态。 - **SESSION**:会话期间有效。 - **BUSINESS_PROCESS**:业务流程持续期间有效。 - **APPLICATION**:应用生命周期...

    jboss rules 最新09年英文原版教材

    - **议程组**:用于组织和控制规则的执行顺序。 - **决策表**:一种可视化的方式表示规则,便于业务人员理解。 #### 五、使用场景 - **订单处理**:根据客户的订单信息自动执行相应的业务逻辑。 - **信用评估**:...

    Apache安装及jboss部署说明文档

    - 通过调整 `server/default/deploy/jboss-service.xml` 文件中的顺序来实现。 - **日志配置,配置 log4j.xml**: - 日志配置文件通常位于 `conf/log4j.xml`。 - 可以配置不同的日志级别和输出目的地。 - **配置...

    linux jboss\jboos.pdf

    - **配置数据源在APP应用加载前有效**:这需要在`jboss-service.xml`文件中调整数据源的加载顺序。 - **日志配置**:JBoss的日志配置主要通过`log4j.xml`文件完成,可以调整日志级别、输出目的地等。 - **配置...

    jboss aop

    - **Metadata Loader**:元数据加载器负责读取外部元数据并应用到切面中。 - **Precedence**:优先级定义了不同切面之间的执行顺序。 - **Declare**:声明元素用于声明切面行为,如错误处理、警告等。 #### 动态AOP...

    jbossaop_quickref.pdf

    根据提供的文档信息,我们可以得出这份文档是关于JBoss AOP(面向切面编程)的快速参考指南。下面将详细介绍文档中提及的关键概念和技术点。 ### JBoss AOP - 面向切面的Java框架 #### 1. Conventions - 公约 文档...

    JBoss Seam3

    - **下载并安装分发包**:首先需要下载JBoss Seam3的分发包,并按照官方文档的指引进行安装。 - **Maven依赖配置**:对于使用Maven作为构建工具的项目,可以通过在`pom.xml`文件中添加适当的依赖来引入Seam3库。 ##...

Global site tag (gtag.js) - Google Analytics