模块描述文件是一个XML文件,用来描述模块的结构,内容,依赖关系,过滤器,以及其它属性。它的格式是富有表现力的,用于使基于文件系统的模块装载器允许描述文件和模块内容放在一起,而不需要在模块内容之中。特别是,它在文件系统中的位置是将模块名转成以点号分割的目录,并加上该模块的version slot。然后以模块根路径附上该目录就可以找到 module.xml 文件。
下面弄是一个被用于 JBoss Application Server 的模块描述文件:
模块描述文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.jboss.msc">
<main-class name="org.jboss.msc.Version"/>
<resources>
<resource-root path="jboss-msc-1.0.1.GA.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="org.jboss.logging"/>
<module name="org.jboss.modules"/>
<!-- Optional deps -->
<module name="javax.inject.api" optional="true"/>
<module name="org.jboss.threads" optional="true"/>
<module name="org.jboss.vfs" optional="true"/>
</dependencies>
</module>
module
元素
模块描述XML有一个根元素module 应用于 "urn:jboss:module:1.0
" 命名空间,它支持一下属性:
Attribute
Type
Required?
Description
name
|
string |
Yes
|
该模块的名字。必须与要装载的模块名称相符。
|
slot
|
string |
No |
The version slot. 如果没指定,默认为 "main
". |
"module
" 元素可以包含下列子元素:
Element
Required?
Description
main-class
|
No |
该模块的main类,main类在模块装载的时候,会执行其main方法 |
resources
|
No |
组成该模块的资源 |
dependencies
|
No |
模块的依赖 |
exports
|
No |
定于用于过滤该模块export资源的过滤器 |
main-class
元素
定义了"main-class
" 元素的模块意味着该模块是可执行的。也就是说,模块名能够被列在命令行中,然后"main-class"中的标准静态方法 "main(String[])"会被执行。
"main-class
" 元素支持以下属性:
Attribute
Type
Required?
Description
name
|
string |
Yes
|
main class 的名称 |
这个元素不包含任何子元素。
|
Note
main class 不需要是该模块的实际资源,也不需要被exported。任何对于该模块可见的public class(包括所有imported的依赖或者资源)都可以作为main class, 只要它有方法"public static void main(String[] args)
"。
|
resources
元素
为了让一个模块具有实际的内容,你必须为其定义至少一个"resources"元素。
"resources"元素不支持任何属性;它包含0至多个"resource-root"元素。"resource-root"元素支持下面的属性:
Attribute
Type
Required?
Description
path
|
string |
Yes
|
该resource的路径,相对于module.xml位置
|
name
|
string |
No |
该resource的名称。如果未指定,则为resource的path
|
另外,"resource-root
" 元素可能包含一个子元素:
Element
Required?
Description
filter
|
No |
作用于resource的目录过滤器。如果未指定,则接受所有路径。
|
参考过滤器定义一节获得更多信息。
dependencies
元素
一个模块可能通过"dependencies"元素描述一个或多个对于其它模块的依赖。"dependencies"元素不支持任何属性,它包含一个或多个"dependency"元素,支持一下属性:
Attribute
Type
Required?
Description
name
|
string |
Yes
|
依赖的模块的名称
|
slot
|
string |
No |
依赖的模块的 version slot,默认为 "main
". |
export
|
boolean |
No |
指定这个依赖是否被再次export,默认为 "false"
|
services
|
enum |
No |
指定定义在依赖模块中META-INF/services的 services是否被 import/export。可能的值有:"none", "import", "export",默认为 "none"
|
optional
|
boolean |
No |
指定这个依赖是否是可选的,默认为 "false"
|
* 对于Java service provider接口机制的介绍,可以参考: http://download.oracle.com/javase/tutorial/sound/SPI-intro.html
另外,"dependencies
" 元素支持一下子元素:
Element
Required?
Description
imports
|
No |
路径过滤器用于限定依赖模块中哪些路径被 import
|
exports
|
No |
路径过滤器用于限定依赖模块中哪些被 import 的路径可以被再次 export
|
参考过滤器定义获得关于过滤器更多的信息。
分享到:
相关推荐
《使用gradle-jboss-modules-plugin构建JBoss Wildfly模块》 在Java开发中,JBoss Wildfly是一款广泛应用的开源应用服务器,它支持模块化架构,能够有效地管理类加载和依赖关系。而Gradle作为现代Java生态系统中的...
JBoss模块系统是基于模块定义XML文件的,这些文件描述了模块的名称、主类路径、依赖关系等信息。每个模块都有一个唯一的ID,由模块名和版本号组成。模块间的依赖关系使得JBoss能正确地管理类加载顺序和避免类冲突。...
根据jboss版本的不同,可能需要将ehcache的JAR文件放入特定的modules目录下,并创建相应的module.xml文件来描述模块的依赖关系。 4. **修改jboss配置**:在jboss的standalone.xml或domain.xml配置文件中,配置缓存...
在本案例中,描述中提到了使用httpd-2.2.17(Apache HTTP Server 2.2.17)与mod_jk.so模块来实现这一目标。 Apache HTTP Server是一个广泛使用的开源Web服务器,而mod_jk.so是Apache的一个模块,它负责连接Apache与...
将Teradata的JDBC驱动JAR文件放入`$JBOSS_HOME/modules/com/teradata/main`目录,并创建一个`module.xml`文件来描述模块: ```xml <module xmlns="urn:jboss:module:1.1" name="com.teradata"> <resource-root...
总结来说,配置Linux下的Apache负载均衡与JBoss集群,主要包括以下几个步骤:安装和配置JDK,安装和配置JBoss,设置Apache服务器,以及配置mod_jk模块和工作者属性。这种配置能够提高系统的稳定性和处理能力,是大型...
2. 编写模块描述符:在模块目录下创建 `module.xml` 文件,定义模块的名称、依赖和资源。这里应指定 Spring 框架和其他依赖库,确保它们在 Web 应用中可用。 3. 配置 Web 应用:在每个需要共享 Spring 上下文的 Web...
- 通过在`jboss-deployment-structure.xml`或相应的应用程序部署描述文件中指定集群策略来实现。 2. **设置会话复制** - JBoss支持多种会话复制策略,包括内存复制、数据库复制等。 - 通常情况下,会使用内存...
组件(模块) 模块描述弹性搜索驾驶舱插件将 ElasticSearch 与 camunda BPM cockpit 集成为 cockpit 插件。 弹性搜索引擎集成将 ElasticSearch 与 camunda BPM 引擎集成为流程引擎插件。 elasticsearch-jboss-module...
7. **modules** 目录:这个目录很可能包含了Axis2的不同模块,每个模块可能是一个特定功能或服务的实现,方便用户根据需要选择和使用。 Axis2的关键特性包括: - **模块化架构**:允许将Web服务分解为独立的模块,...
这通常通过将EclipseLink的JAR文件放入JBOSS EAP的`modules`目录下的相应模块路径来完成。例如,创建一个新的模块定义,如`org/eclipse/persistence/main`,并放置EclipseLink的JAR文件,同时编写模块XML配置文件以...
2. **Jboss Modules**: JBoss应用服务器中的模块化加载机制支持热部署。每个模块都有自己的类加载器,当模块更新时,可以替换旧的类加载器,从而实现类的热替换。 3. **OSGi**: OSGi(Open Services Gateway ...
- **配置**:JAAS配置文件定义了哪些登录模块(Login Modules)需要用于特定的安全上下文。 - **登录模块**:登录模块是JAAS的核心组件,负责执行实际的认证逻辑。它们可以是纯Java实现,也可以是与操作系统或其他...
此外,可能还包含其他相关库,如`xdoclet-modules`目录下的模块,用于支持特定框架或技术,如Hibernate、JBOSS等。 为了在Eclipse项目中使用XDoclet-1.2.1,你需要按照以下步骤操作: 1. **解压文件**:首先,你...
它包含教程、使用手册、视频、特征描述、参考资料以及常见问题。 Jetty文档 ---------------- 入门: 下载Download, 安装, 配置, 运行 Jetty入门(视频) 下载和安装Jetty 如何安装一个Jetty包 如何配置Jetty – ...
4. **Modules**:Ansible拥有丰富的内置模块,如`wildfly-cli`模块,可以用来通过JMX接口与Wildfly服务器进行交互,执行如管理用户、部署应用、调整服务器配置等操作。 5. **变量和模板**:Ansible允许使用变量来...