文档章节

jboss7-的类依赖管理

fir01
 fir01
发布于 2013/03/18 13:15
字数 753
阅读 3K
收藏 4

「深度学习福利」大神带你进阶工程师,立即查看>>>

  1. jboss类的加载顺序:1)系统包2)jboss-deployment-structure.xml或者 Dependencies: manifest entry for modules 或者 through Class-Path: for jar files. 3)本地包WEB-INF/classesWEB-INF/lib下的内容 4)内部依赖类:如ear的子包相互依赖

  2. 应用程序模块加载的命名约定: deployment.myarchive.war ,deployment.myear.ear.mywar.war.不多解释,观察下特征

  3. 系统包依赖自动加载.注意一个包在应用程序中和jboss系统中都有的情况下,优先使用了host.xml中配置的子系统的依赖包.当腰改变这种和系统包之间的依赖性,可以配置jboss-deployment-structure.xml文件

  4. EAR包中所有子系统的类和包可以设置为共享和独占。但是可以在host.xml中配置独占,默认视共享,即可以从其它子项目加载类:

    <subsystemxmlns="urn:jboss:domain:ee:1.0">            

      <ear-subdeployments-isolated>false</ear-subdeployments-isolated>

    </subsystem>

  5. war中的lib和class文件在jboss中是同等对待的

  6. jboss-deployment-structure.xml的作用,放在顶级应用中包添加或者删除依赖性。文件方放在META-INF (或者WEB-INF)中. 

    jboss-deployment-structure.xml
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
      <!-- Make sub deployments isolated by default, so they cannot see each others classes without a Class-Path entry设置ear的子应用的包不依赖 -->
      <ear-subdeployments-isolated>true</ear-subdeployments-isolated>
      <!-- This corresponds to the top level deployment. For a war this is the war's module, for an ear -->
      <!-- This is the top level ear module, which contains all the classes in the EAR's lib folder     -->
      <deployment>
         <!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment设置不加载服务器配置文件中的子应用 -->
         <!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
         <exclude-subsystems>
            <subsystem name="resteasy" />
        </exclude-subsystems>
        <!-- Exclusions allow you to prevent the server from automatically adding some dependencies 禁止服务器自动添加某些依赖   -->
        <exclusions>
            <module name="org.javassist" />
        </exclusions>
        <!-- This allows you to define additional dependencies, it is the same as using the Dependencies: manifest attribute 添加依赖 -->
        <dependencies>
          <module name="deployment.javassist.proxy" />
          <module name="deployment.myjavassist" />
          <!-- Import META-INF/services for ServiceLoader impls as well -->
          <module name="myservicemodule" services="import"/>
        </dependencies>
        <!-- These add additional classes to the module. In this case it is the same as including the jar in the EAR's lib directory 可以添加一些格外的包-->
        <resources>
          <resource-root path="my-library.jar" />
        </resources>
      </deployment>
      <sub-deployment name="myapp.war">
        <!-- This corresponds to the module for a web deployment -->
        <!-- it can use all the same tags as the <deployment> entry above -->
        <dependencies>
          <!-- Adds a dependency on a ejb jar. This could also be done with a Class-Path entry -->
          <module name="deployment.myear.ear.myejbjar.jar" />
        </dependencies>
        <!-- Set's local resources to have the lowest priority -->
        <!-- If the same class is both in the sub deployment and in another sub deployment that -->
        <!-- is visible to the war, then the Class from the other deployment will be loaded,  -->
        <!-- rather than the class actually packaged in the war. -->
        <!-- This can be used to resolve ClassCastExceptions  if the same class is in multiple sub deployments 设置本地包加载优先级最后-->
        <local-last value="true" />
      </sub-deployment>
      <!-- Now we are going to define two additional modules -->
      <!-- This one is a different version of javassist that we have packaged -->
      <module name="deployment.myjavassist" >
        <resources>
         <resource-root path="javassist.jar" >
           <!-- We want to use the servers version of javassist.util.proxy.* so we filter it out-->
           <filter>
             <exclude path="javassist/util/proxy" />
           </filter>
         </resource-root>
        </resources>
      </module>
      <!-- This is a module that re-exports the containers version of javassist.util.proxy -->
      <!-- This means that there is only one version of the Proxy classes defined          -->
      <module name="deployment.javassist.proxy" >
        <dependencies>
          <module name="org.javassist" >
            <imports>
              <include path="javassist/util/proxy" />
              <exclude path="/**" />
            </imports>
          </module>
        </dependencies>
      </module>
    </jboss-deployment-structure>
  7. <subsystemxmlns="urn:jboss:domain:ee:1.0"> 可以设置全局依赖性:

    <subsystem xmlns="urn:jboss:domain:ee:1.0">            

      <global-modules>

        <modulename="org.javassist"slot="main"/>            

      </global-modules> 

    </subsystem>

fir01
粉丝 19
博文 110
码字总数 34117
作品 0
长沙
项目经理
私信 提问
加载中
此博客有 1 条评论,请先登录后再查看。
浅入浅出Android(003):使用TextView类构造文本控件

基础: TextView是无法供编辑的。 当我们新建一个项目MyTextView时候,默认的布局(/res/layout/activity_main.xml)中已经有了一个TextView: <TextView 运行效果如下: 修改其文本内容...

樂天
2014/03/22
720
1
极速博客引擎--Gor

gor 是使用 golang 实现的类Ruhoh静态博客引擎(Ruhoh like),基本兼容ruhoh 1.x规范. 相当于与ruhoh的官方实现(ruby实现), 有以下优点: 速度完胜 -- 编译wendal.net近200篇博客,仅需要1秒 安装...

wendal
2013/01/20
3.9K
0
DNS 管理系统--NamedManager

NamedManager 是一个基于 Web 的 DNS 管理系统,可用来添加、调整和删除 DNS 的 zones/records 数据,支持 Bind 作为后端的 DNS 服务,支持 IPv4 和 IPv6。...

匿名
2013/01/23
8.9K
0
Web开发组件管理器--Bower

Bower 是一个针对Web开发的包管理器。该工具主要用来帮助用户轻松安装CSS、JavaScript、图像等相关包,并管理这些包之间的依赖。 功能有些类似于Component。不同之处是,Component是围绕Git...

匿名
2013/02/01
1.2W
2
研究虚拟机--Jikes RVM

Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(CPL)与Eclipse公共许可证(EPL)下开...

匿名
2013/02/13
1.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

历史上第一个聊天机器人:200 行代码就能欺骗人类感情

在 1964 年至 1966 年间,麻省理工学院人工智能实验室的德裔美国计算机科学家约瑟夫·维森鲍姆(Joseph Weizenbaum)开发了历史上第一个聊天机器人 —— Eliza。 Eliza 的名字源于爱尔兰剧作...

摆摊卖报纸
25分钟前
23
0
WordPress文章页面获取评论次数

页面的评论次数 主要调用在文章的开始,让读者方便的点击,参与评论,这里我们是获取本篇文章的评论次数,不是评论的人数。 通过以下代码轻松实现: <?php if( $posts ) : ?> <?php foreach...

osc_ho1lz6z7
25分钟前
0
0
JavaScript 预编译过程的详细解读

文章目录 JavaScript运行三部曲 JavaScript预编译 01 关于预编译的一些知识点 02 预编译四部曲(局部) 1. 创建AO对象(Activation Object) (执行期上下文) 2. 找形参和变量声明,将变量和形参...

osc_vo0yi5f8
27分钟前
5
0
WordPress页面添加打印功能

页面打印 功能方便我们快速链接打印机,有很多插件,这里介绍代码实现的方法。 1、html添加打印链接 <a href="javascript:printme()" target="_self">打印</a> 2、js函数 在你的wp中引入下面......

osc_hzf6peqc
28分钟前
0
0
wordpress文章页面添加字体增大减小链接

字体的大小 影响读者的视觉感受,我们可以在wordpress的文章页面single.php上通过js添加字体的增大减小按钮,来方便字体大小的调整。 1、在single.php文章页面添加Js <script type="text/jav...

osc_0qnrwmy3
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部