原文地址:http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/ch01s04s02.html
大多数JavaEE应用是发布成EAR归档文件的。一个EAR归档文件是一个JAR文件,其典型表现是包含了一个WAR归档文件(处理web页面,servlet以及web相关的组件)以及一个或多个提供EJB3服务(如数据访问与事务)的JAR文件,和另外一些支持应用正常运行的JAR文件。另外一个EAR文件也拥有部署描述文件例如applocation.xml和jboss-app.xml。下面是一个典型EAR应用的基础结构
myapp.ear
|+ META-INF
|+ applications.xml and jboss-app.xml
|+ myapp.war
|+ web pages and JSP /JSF pages
|+ WEB-INF
|+ web.xml, jboss-web.xml, faces-config.xml etc.
|+ lib
|+ tag library JARs
|+ classes
|+ servlets and other classes used by web pages
|+ myapp.jar
|+ EJB3 bean classes
|+ META-INF
|+ ejb-jar.xml and persistence.xml
|+ lib
|+ Library JARs for the EAR
需要注意一点的是,不像许多其它的应用服务器,在JBossAS应用服务器中,你不需要为了让WAR文件能访问EJB3服务而在web.xml文件中声明EJB引用。你可以直接通过JNDI来获得引用。
下面是一个典型的application.xml文件。它声明了在EAR中的WAR与EJB3的JAR文件,以及为应用定义了web内容的根目录。当然,你可以在同一个EAR应用存放多个EJB3模块。在这个EAR应用中,application.xml文件也可以为这些jar文件选择性地定义一个共用的类路径。在JBossAS中,这个JAR文件路径默认为"lib",但这个路径在其它应用服务器中可能会不同
<application>
<display-name>My Application</display-name>
<module>
<web>
<web-uri>myapp.war</web-uri>
<context-root>/myapp</context-root>
</web>
</module>
<module>
<ejb>myapp.jar</ejb>
</module>
<library-directory>lib</library-directory>
</application>
而jboss-app.xml文件则为EAR应用提供了特属于JBoss的部署配置方法。例如,它可以在EAR中指定模块的部署顺序、部署特属于JBoss的应用模块如SAR文档(Service ARchive for MBeans)和HAR文档(Hibernate ARchive for Hibernate objects)、提供可用于该应用的安全域和JMX MBean等等。你可以参考以下DTD来获取jboss-app.xml的更多属性:
http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd.
一个jboss-app.xml的公用例子是配置关于该EAR文件是否要部署在它特有范围的类加载器中,用以防止和其它应用的命名冲突。如果你的EAR应用是部署在自己拥有的类加载器并且在其EJB3的JAR文件中只有一个persistence-unit,那你就可以使用@PersistenceContext EntityManager来注入EntityManager到session beans,而无需考虑得传递persistence unit的名称给@PersistenceContext注释。下面的jboss-app.xml为EAR应用标识了一个一定范围的类加载器 myapp:archive=myapp.ear
<jboss-app>
<loader-repository>
myapp:archive=myapp.ear
</loader-repository>
</jboss-app>
EAR部署由JBOSS_DIST/server/default/deploy/ear-deploy.xml文件来配置,此文件包含以下三个属性
<server>
<mbean code="org.jboss.deployment.EARDeployer"
name="jboss.j2ee:service=EARDeployer">
<!--
A flag indicating if ear deployments should
have their own scoped class loader to isolate
their classes from other deployments.
-->
<attribute name="Isolated">false</attribute>
<!--
A flag indicating if the ear components should
have in VM call optimization disabled.
-->
<attribute name="CallByValue">false</attribute>
<!--
A flag the enables the default behavior of
the ee5 library-directory. If true, the lib
contents of an ear are assumed to be the default
value for library-directory in the absence of
an explicit library-directory. If false, there
must be an explicit library-directory.
-->
<attribute name="EnablelibDirectoryByDefault">true</attribute>
</mbean>
</server>
如果你设置了Isolated为true,所有的EAR部署默认都会拥有范围内的类加载器。因此不需要去定义jboss-app.xml文件中的classloader了。CallByValue 指明我们是否要把所有EJB调用都当成远程调用。远程调用比本地 call-by-reference调用要花费另外的花销,因为参与远程调用的对象需要序列化和反序列化。对于我们大多数的应用来说,WAR与EJB3的JAR是部署在同一个服务器上的,因此该值因该默认为false,并让服务器在同一个JVM中使用本地 call-by-reference调用来援用EJB方法。 EnablelibDirectoryByDefault属性指明在EAR归档文件中的lib目录是否要成为共享JAR文件的路径。
分享到:
相关推荐
ReadTestquestion<br>7.5. 课程设计作业<br>第8章 日历记事本<br>8.1. 设计内容<br>8.2. 设计要求<br>8.3. 总体设计<br>8.4. 具体设计<br>8.4.1. 运行效果与程序发布<br>8.4.2. 主类CalendarPad<br>8.4.3. 记事本...
ReadTestquestion<br>7.5. 课程设计作业<br>第8章 日历记事本<br>8.1. 设计内容<br>8.2. 设计要求<br>8.3. 总体设计<br>8.4. 具体设计<br>8.4.1. 运行效果与程序发布<br>8.4.2. 主类CalendarPad<br>8.4.3. 记事本...
MySQL的历史<br>1.4.2. MySQL的的主要特性<br>1.4.3. MySQL稳定性<br>1.4.4. MySQL表最大能达到多少<br>1.4.5. 2000年兼容性<br>1.5. MaxDB数据库管理系统概述<br>1.5.1. 什么是MaxDB?<br>1.5.2. MaxDB的历史<br>...
365<br>12.11.3 background-repeat属性... 367<br>12.11.4 background-attachment属性... 368<br>12.11.5 background-position属性... 369<br>12.12 文本属性... 373<br>12.12.1 word-spacing属性... 373<br>12.12....
可能该书会有很多人用得上,而本下载频道里已有的下载地址有误且文件不可用,故而再次上传,以供有需要者下载!... 同一台计算机在家里无法正常使用<br>1.4.2 设备设置<br>112. 主机到本地路由器的以太口不通 <br>
sed 用法介绍 89<br>10.1 sed怎样读取数据 89<br>10.2 调用sed 89<br>10.2.1 保存sed输出 90<br>10.2.2 使用sed在文件中查询文本的方式 90<br>10.2.3 基本sed编辑命令 90<br>10.3 sed和正则表达式 91<br>10.4 基本...
<br><br>目录 <br>第1章 网络连接常见问题与故障<br>1.1 网络搭建(网络拓扑、网络连接)<br>1.1.1 网络规划<br>1. 物理隔离要建两个网络<br>2. 划分子网隔离子网<br>3. IP与MAC绑定难题<br>4. 实现多VLAN的Internet...
<br><br>目录 <br>第1章 网络连接常见问题与故障<br>1.1 网络搭建(网络拓扑、网络连接)<br>1.1.1 网络规划<br>1. 物理隔离要建两个网络<br>2. 划分子网隔离子网<br>3. IP与MAC绑定难题<br>4. 实现多VLAN的Internet...
<br>21.2.2 申请服务器证书 <br>21.2.3 安装服务器证书 <br>21.3 在ASP.NET页面中使用SSL <br>21.4 使用.NET加密类 <br>21.4.1 使用散列算法 <br>21.4.2 使用对称加密算法 <br>21.4.3 使用不对称加密 <br>21.5 小结 ...
数据传输 64<br>4.1 中断处理 64<br>4.2 DPC处理程序 66<br>4.3 带外(OOB)数据包 66<br>4.3.1 等待发送的OOB数据 67<br>4.3.2 接收的OOB数据 68<br>4.4 发送包 69<br>4.4.1 无连接微端口的多包传送 70<br>4.4.1.1 ...
<br>21.2.2 申请服务器证书 <br>21.2.3 安装服务器证书 <br>21.3 在ASP.NET页面中使用SSL <br>21.4 使用.NET加密类 <br>21.4.1 使用散列算法 <br>21.4.2 使用对称加密算法 <br>21.4.3 使用不对称加密 <br>21.5 小结 ...
<br>21.2.2 申请服务器证书 <br>21.2.3 安装服务器证书 <br>21.3 在ASP.NET页面中使用SSL <br>21.4 使用.NET加密类 <br>21.4.1 使用散列算法 <br>21.4.2 使用对称加密算法 <br>21.4.3 使用不对称加密 <br>21.5 小结 ...
<br>21.2.2 申请服务器证书 <br>21.2.3 安装服务器证书 <br>21.3 在ASP.NET页面中使用SSL <br>21.4 使用.NET加密类 <br>21.4.1 使用散列算法 <br>21.4.2 使用对称加密算法 <br>21.4.3 使用不对称加密 <br>21.5 小结 ...
<br>21.2.2 申请服务器证书 <br>21.2.3 安装服务器证书 <br>21.3 在ASP.NET页面中使用SSL <br>21.4 使用.NET加密类 <br>21.4.1 使用散列算法 <br>21.4.2 使用对称加密算法 <br>21.4.3 使用不对称加密 <br>21.5 小结 ...
jquery-1.4.2.js和jquery.min-1.4.2.js
MYSQL高级特性 81<br>4.1 集合函数 82<br>4.1.1 行列计数 82<br>4.1.2统计字段值的数目 82<br>4.1.3 计算字段的平均值 83<br>4.1.4 计算字段值的和 84<br>4.1.5 计算字段值的极值 84<br>4.1.6 总结 86<br>4.2 操作...
MYSQL高级特性 81<br>4.1 集合函数 82<br>4.1.1 行列计数 82<br>4.1.2统计字段值的数目 82<br>4.1.3 计算字段的平均值 83<br>4.1.4 计算字段值的和 84<br>4.1.5 计算字段值的极值 84<br>4.1.6 总结 86<br>4.2 操作...
目 录<br>译者序<br>前言<br>第1章 Linux操作系统 1<br>1.1 Linux的简要历史介绍 1<br>1.2 Linux核心 2<br>1.2.1 Linux的开发特点 2<br>1.2.2 Linux分发包 3<br>1.2.3 为什么要为商业Linux<br> 版本付费 3<br>1.3 ...
nacos-server-1.4.2.zip
sed 用法介绍 89<br>10.1 sed怎样读取数据 89<br>10.2 调用sed 89<br>10.2.1 保存sed输出 90<br>10.2.2 使用sed在文件中查询文本的方式 90<br>10.2.3 基本sed编辑命令 90<br>10.3 sed和正则表达式 91<br>10.4 基本...