Jboss7 快速入门手册


1 Jboss7 快速入门手册 比尔板三 2012-10-24 一、新特性 ................................................................................................................................................................. 1 二、部署配置 ............................................................................................................................................................. 8 2.1 目录结构 ..................................................................................................................................................... 8 2.2 启动 Jboss .................................................................................................................................................. 9 2.3 安装 JDBC Driver .................................................................................................................................... 10 2.4 配置数据源 ............................................................................................................................................... 10 2.5 配置日志 ................................................................................................................................................... 13 2.6 通过文件系统部署 ................................................................................................................................... 14 2.7 使用 jboss-as-maven-plugin 部署........................................................................................................ 15 2.8 使用 Eclipse 部署 ................................................................................................................................... 16 三、管理 Jboss .......................................................................................................................................................... 17 3.1 WEB 管理控制台 ........................................................................................................................................ 17 3.2 CLI(Command Line Interface) ......................................................................................................... 19 四、常见问题 ........................................................................................................................................................... 21 1 本文基于 Jboss 7.1.1 Final,参考了 Getting Started Guide、Developer Guide、Getting started with JBoss AS、 Admin Guide 等文档。文档介绍了 Jboss 7 的新特性、部署和管理的基础知识,通过本文开发者可以快速地了解和使用 Jboss7。 由于本人水平有限,Jboss 7 官方文档尚在不断更新中,文档中所述内容也未全部进行过测试,如果发现有错误的地方,还 请指出,我会更新文档,如有人转载也请保持最新。 一、新特性  构建在Modular Service Container上,充分地利用了多核处理器的能力,并发、按需启动服务,启动速度更快、占 用内存更小。  全面兼容(Jboss 7.1)Java EE6  支持JDK6/7  统一的配置和管理  兼容OSGI 4.2,支持OSGI和Java EE组件模型集成。  易测试 利用Arquillian测试平台—一种集成测试组件模型,更易于测试,改变-编译-测试的周期更短。  两种模式 Standalone模式(使用standalone.bat启动)相当于以前的3、4、5、6版本。配置文件、发布内容等放在standalone目 录下。 Domain模式(使用domain.bat启动)是Jboss7的一个新特征,可以在一个控制点管理多个服务器。  类加载 类加载基于Jboss Module,取代了层次类加载环境,避免了当类存在多个版本时,导致类加载错误。类加载是基于模块 的,必须显示的定义模块依赖。部署也是模块化的,如果没有显示的定义类依赖则不能访问应用服务器jar中的类。 尽管AS7中模块默认是隔离的,在部署过程中,一些由应用服务器定义的模块依赖会自动装配。例如,如部署一个Java EE 应用,将自动添加Java EE API依赖,这也称为隐式模块依赖。 Jboss7中的隐式模块依赖列表,请参见 https://docs.jboss.org/author/display/AS7/Implicit+module+dependencies+for+deployments 对于其它的类,必须在MANIFEST.MF文件的“Dependencies:”或“Class-Path:”项,或在jboss-deployment-structure.xml 文件中定义显示的模块依赖。 类加载优先级(从高到低): 1、 系统依赖 - 容器自动加载的模块依赖,包括 Java EE api。 2、 用户依赖 - 在 jboss-deployment-structure.xml(在 ear 的 META-INF 内,war 的 META-INF 或 WEB-INF 内) 或 Dependencies: 项内配置的依赖。 3、 本地资源 - 发布目录下的类文件,如 war 包下的 WEB-INF/classes 或 WEB-INF/lib。 4、 部署间依赖 - 在 ear 内的其他部署依赖。包括 ear lib 目录内的类,或其他 ejb 包内的类。 War 被认为是一个单独的模块,WEB-INF/lib 和 WEB-INF/classes 内的类是相同的,都由同一类加载器加载。 Ear部署是多模块的部署。这意味着不是ear内的所有类都有必要访问ear内所有其他类,除非指定明确的依赖。默认情况 下,EAR/lib目录是一个单独的模块,每个WAR或EJB jar是一个单独的模块。子部署(war和ejb-jar)总是依赖父模块,可以访 问 EAR/lib内的类,然而它们彼此间不总是有自动依赖。可以通过修改如下配置控制这个行为: false ear-subdeployments-isolated 默认值为 false,允许子部署访问其他子部署的类。 以下的 ear 部署,如 ear-subdeployments-isolated 值为 false,web.war 内的类能访问 ejb1.jar 和 ejb2.jar 内的类, 同样,ejb1.jar 内的类能访问 ejb2.jar 内的类。 myapp.ear 2 | |--- web.war | |--- ejb1.jar | |--- ejb2.jar 注意:ear-subdeployments-isolated 参数值不会影响 war 的独立类加载器。无论其值为 true 或 false,在 ear 内的 war 都有一个独立的类加载器,ear 内的其他子部署不能访问 war 内的类。 如果值设为true,子部署间没有自动的模块依赖。用户必须手动设置MANIFEST.MF内的Class-Path,或设置明确的模块依 赖。Java EE规范推荐使用Class-Path方式实现可移植的应用。 也可在jboss-deployment-structure.xml内配置这个参数,覆盖全局配置,参见后面的Jboss部署结构文件部分。 MANIFEST.MF 内的 Dependencies配置 Dependencies由逗号分隔的模块名列表组成,如下(更多内容请参见JBoss AS 7 Developer Guide): Manifest-Version: 1.0 Dependencies: org.javassist export,org.apache.velocity export services,org.antlr Class-Path: OrderManagerEJB.jar 如使用maven可自动生成MANIFEST.MF,如下: ... org.apache.maven.plugins maven-war-plugin org.slf4j 注:如为jar包,应使用maven-jar-plugin。 全局模块 可以配置全局模块,使所有部署都能访问。修改standalone.xml/domain.xml配置文件,如下: Jboss部署结构文件 jboss-deployment-structure.xml是Jboss特定的部署描述符,以细粒度的方式来控制类加载。应将它放在顶层部署的 META-INF(或WEB-INF)内。提供了如下功能: 3 1) 阻止自动添加依赖 2) 增加附加依赖 3) 定义附加的模块 4) 改变ear部署隔离的类加载行为 5) 给模块添加额外的资源 true 4  JNDI 命名空间 EJB3.1引入了标准化的全局命名空间和一系列相关的命名空间来映射到Java EE应用的不同域。新增的三个JNDI命名空间 是:java:global、java:module、java:app。为了维持兼容性,在新规范中没有改变java:comp命名空间。 AS 7命名空间应遵从下面的规则: 1) 无限制的相对名称,如“ ExampleDS”或 “jdbc/ExampleDS”,应根据上下文使用"java:comp/env"、"java:module/env" 或"java:jboss/env"加以限制。 2) 无限制的绝对名称,如"/jdbc/ExampleDS",应使用"java:jboss/root"加以限制。 3) 有限制的绝对名称,如"java:/jdbc/ExampleDS",也应使用"java:jboss/root"加以限制。 4) 特殊的"java:jboss"命名空间,在整个AS服务器实例中共享。 5) 任何以"java:"开头的相对名称必须是五个命名空间"comp"、 "module"、"app"、"global"、 "jboss"中之一。  JPA 2.0和Hibernate 4.0 JPA子系统实现了JPA 2.0,使用Hibernate 4.0作为持久化提供者 JPA 2.0规范:http://jcp.org/aboutJava/communityprocess/pfd/jsr317/index.html 如果应用中含有persistence.xml文件,或代码中使用了@PersistenceContext或@PersistenceUnit,AS7会侦测到并假定 应用使用了JPA。它会隐式添加hibernate 4和其他几个依赖。 在AS7中使用Hibernate3 如果你的应用使用了Hibernate3,在大多数情况下不会有问题,变为使用Hibernate4后可以部署并成功地运行。然而, 如果部署应用时有ClassNotFoundExceptions异常(比如使用了validator或search类),请按如下方式修改: 1)将包含这些类的Hibernate 3 jar拷贝到应用的lib目录下,或将它们添加到classpath内。在有些情况下混合使用不同版 5 本的Hibernate,可能导致ClassCastException或其他的类加载问题。 2)仅使用Hibernate 3,需排除Hibernate 4。需要使用Hibernate 3.5以上版本。 如果仅一个应用中使用,可以将Hibernate(hibernate3-core.jar、hibernate3-commons-annotations.jar、 hibernate3-entitymanager.jar、dom4j.jar、slf4j.jar、slf4j-api.jar、commons-collections.jar、antlr.jar等)打包到应用中。然后 在persistence.xml文件中,增加jboss.as.jpa.providerModule属性,其值设为hibernate3-bundled,JPA deployer将会侦测到。 Hibernate 3 Persistence Unit. java:jboss/datasources/PlannerDS 如果要在多个应用中共享,需要在AS/modules文件夹下手动创建org.hibernate:3模块。步骤如下: a) 在AS\modules\org\hibernate文件夹下创建名为”3”的文件夹。 b) 拷贝Hibernate 3 jar到这个文件夹(hibernate3-core.jar、hibernate3-commons-annotations.jar、 hibernate3-entitymanager.jar、dom4j.jar、slf4j.jar、slf4j-api.jar、commons-collections.jar、antlr.jar、slf4j-api.jar、 commons-collections.jar、antlr.jar和任何Hibernate 3需要的jar) c) 在这个目录下创建module.xml文件,内容如下: 6 d) 在persistence.xml文件中添加引用: CRM Persistence Unit. java:jboss/datasources/CRMDS 持久化单元定义中支持的属性: 属性 目的 jboss.as.jpa.providerModule 持久化提供者模块名(默认是 org.hibernate)。如果 Hibernate 3 jar 放在了应用中,其 值应设为 hibernate3-bundled (adapterModule 和 adapterClass 将自动设为 hibernate3-bundled)。 jboss.as.jpa.adapterModule 辅助 AS 与持久化提供者工作的集成类名。当前的有效值是 org.jboss.as.jpa.hibernate:4 (Hibernate 4 集成类) 和 org.jboss.as.jpa.hibernate:3 (Hibernate 3 集成类)。 jboss.as.jpa.adapterClass 集成适配器类名。当前的有效值是 org.jboss.as.jpa.hibernate3.HibernatePersistenceProviderAdaptor 和 org.jboss.as.jpa.hibernate4.HibernatePersistenceProviderAdaptor。 更新Hibernate4 如果要更新Hibernate4,需将下载的jar拷贝到modules/org/hibernate/main目录,并更新module.xml文件内的版本号。还 要更新envers和validator模块,拷贝jar到相应目录。 persistence.xml文件 persistence.xml文件应放在META-INF目录下,存储persistence.xml文件的jar或目录称为持久化单元的根。在Java EE环 境中,持久化单元的根必须是以下之一: a) EJB-JAR文件 b) WAR文件的WEB-INF/classes目录 c) WAR文件的WEB-INF/lib目录下的jar文件 d) EAR lib目录下的jar文件 e) 应用客户端jar文件 Hibernate 4 Validator Java EE 6中定义了一个新的技术标准Bean Validation(JSR-303),Hibernate Validator 4.x是它的一个参考实现。 AS7给java:comp/ValidatorFactory名字下的JNDI上下文绑定了一个默认的ValidatorFactory。 从Hibernate Validator 3 升级到4,最明显的变化是需要修改注解,要将原来的注解替换为javax.validation.constraints 或org.hibernate.validator.constraints包中的注解,例如: org.hibernate.validator.Length 改为 javax.validation.constraint.Size org.hibernate.validator.NotNull 改为 javax.validation.constraint.NotNull org.hibernate.validator.Pattern 改为 javax.validation.constraint.Pattern 7 有关Hibernate Validator 4的新特性,生命周期校验、手动校验、自定义校验等的使用和配置请查看Hibernate Validator 文档,官方也提供了中文文档。 二级缓存 Infinispan代替了Jbosss Cache(在非集群时也使用Infinispan) 需要改变persistence.xml文件,使用JPA与使用Hibernate API语法有轻微的不同。使用JPA的示例如下: 在EAP 5.1中的persistence.xml文件: 在 AS7 中使用 Infinispan 的 JPA 应用需要的配置: 在 AS7 中使用 Infinispan 的 native Hibernate 应用需要的配置: 因为 JPA 应用默认使用 Infinispan,所以仅需要指定很少的配置。对于 native Hibernate 应用需要: 1) 使用hibernate.transaction.factory_class 属性选择正确的Hibernate事务工厂。 2) 使用hibernate.transaction.manager_lookup_class属性选择正确的Hibernate事物管理器查找类。 3) 使用以下两属性之一配置Infinispan cache region工厂: 如果Infinispan CacheManager绑定到JNDI,选择JndiInfinispanRegionFactory作为cache region factory。 如果运行JPA/Hibernate和独立的Infinispan或使用第三方的应用服务器,选择InfinispanRegionFactory作为cache region factory。  不再支持JBoss Messaging,使用HornetQ代替。  LDAP安全域 在以前的Jboss AS版本中,LDAP域在login-config.xml文件中作为一项application-policy来配置,下面是以前配置的 例子: com.sun.jndi.ldap.LdapCtxFactory simple 8 .... 在AS 7中,LDAP域在standalone.xml或domain.xml文件中作为一项security-domain来配置,如下: ...  jboss-maven-plugin已不再更新,不支持AS7,请使用jboss-as-maven-plugin。  jboss-web.xml 如果在jboss-web.xml中定义了class-loading元素,需要删除该元素,Jboss7中有了默认的类加载行为。 二、部署配置 在启动Jboss前,先来了解一下Jboss 7的目录结构。 2.1 目录结构 目录 描述 bin Unix 和 Windows 环境下的启动脚本和启动配置文件 bundles 存放 OSGI bundle docs/schema 存放 XML schema 定义文件 domain domain 模式的配置文件、部署内容和可写区域等 modules 存放各种模块,AS 7 是基于模块化的类加载架构 standalone standalone 模式的配置文件、部署内容和可写区域等 welcome-content 欢迎页面 standalone目录结构 目录 描述 configuration Standalone 模式的配置文件,所有配置信息都存放于此。 data 服务器写入的持久化信息,比如通过 web 管理控制台或 CLI 部署的项目存放在 content 目录下。 deployments 用户部署内容存放目录,服务器运行时能自动侦测和部署这些内容。 lib/ext 利用扩展列表机制安装的 library jar 的存放位置。 9 log 日志文件 tmp 临时文件 Domain目录结构 目录 描述 configuration domain 模式的配置文件,所有配置信息都存放于此。 data/content 主机控制器内部工作区。内部存储部署内容的地方,用户不能操作这个目录。 注意:域模式不支持扫描文件系统来部署内容。 lib/ext 利用扩展列表机制安装的 library jar 的存放位置。 log 日志文件 servers 应用服务器实例可写区域。每一个应用服务器实例都有它自己的子目录,当服务器第一次启动时创建。在 每个服务器的目录内包括以下的子目录: data {-}- 服务器写入信息区 log {-}- 日志文件 tmp {-}- 临时文件 2.2 启动 Jboss 应先配置JAVA_HOME、JBOSS_HOME等环境变量,配置步骤在此略过。 以standalone模式启动,运行bin下的standalone.bat;以domain模式启动,运行domain.bat。如要指定启动配置文件, 使用以下命令: standalone --server-config=standalone-preview.xml domain --domain-config=domain.xml --host-config=host.xml 说明:路径相对于configuration或者是绝对路径。运行standalone/domain时,附加-h,可以查看命令支持的参数。 启动后,在浏览器地址栏输入http://localhost:8080/既能进入欢迎页面,如下: 默认只能通过http://localhost:8080/或http://127.0.0.1:8080/来访问,而不能通过局域网或外网地址访问。可以在 启动时附加-b参数,指定为0.0.0.0就可以了,如下: standalone –b 0.0.0.0 也可以修改配置文件,找到如下部分: 10 将127.0.0.1修改为0.0.0.0或局域网IP或公网IP。 2.3 安装 JDBC Driver Jdbc 4兼容的driver能作为一个部署或核心模块来安装。 (Jdbc 4兼容的driver在jar包内含有META-INF/services/java.sql.Driver文件,其中指定了驱动类名称。)  作为一个部署 这是推荐的安装方式。当以domain模式运行服务时,部署将自动传播到所有服务器。 可通过WEB管理控制台或CLI来部署driver,standalone模式时也可直接拷贝jar到standalone/deployments目录。 注意:如果driver由多个jar组成,则不能使用这种方式,必须作为一个核心模块安装。  作为一个核心模块 需要在modules目录下创建一个目录结构,其内包含driver和module.xml文件。如Jboss使用的ExampleDS默认数据源, 其Driver配置就使用了这种方式,目录为“/modules/com/h2database/h2”,其module.xml的内容如下: 如安装MySql驱动,要建立如下目录结构: modules/com/mysql/main module.xml文件内容如下: 注意:module.xml文件的开头不能有空格,否则会产生“New missing/unsatisfied dependencies”错误。 2.4 配置数据源 在standalone/configuration/standalone.xml 或domain/configuration/domain.xml配置文件的datasources子系统内定义 数据源,如下: 11 jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 h2 10 20 true sa sa h2 jdbc:h2:mem:test 10 20 true sa sa org.h2.jdbcx.JdbcDataSource 可通过CLI运行如下命令查看数据源配置信息(CLI用法参见第三部分): [standalone@localhost:9999 /] /subsystem=datasources:read-resource(recursive=true) { "outcome" => "success", "result" => { "data-source" => {"java:/H2DS" => { "connection-url" => "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", "jndi-name" => "java:/H2DS", "driver-name" => "h2", "pool-name" => "H2DS", 12 "use-java-context" => true, "enabled" => true, "jta" => true, "pool-prefill" => true, "pool-use-strict-min" => false, "user-name" => "sa", "password" => "sa", "flush-strategy" => "FailingConnectionOnly", "background-validation" => false, "use-fast-fail" => false, "validate-on-match" => false, "use-ccm" => true }}, "xa-data-source" => undefined, "jdbc-driver" => {"h2" => { "driver-name" => "h2", "driver-module-name" => "com.h2database.h2", "driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource" }} } } [standalone@localhost:9999 /] /subsystem=datasources:installed-drivers-list { "outcome" => "success", "result" => [{ "driver-name" => "h2", "deployment-name" => undefined, "driver-module-name" => "com.h2database.h2", "module-slot" => "main", "driver-xa-datasource-class-name" => "org.h2.jdbcx.JdbcDataSource", "driver-class-name" => "org.h2.Driver", "driver-major-version" => 1, "driver-minor-version" => 2, "jdbc-compliant" => true }] } 使用 Web 控制台或 CLI 极大地简化了 driver 的部署和数据源的创建。 CLI 提供了一系列命令来创建和修改数据源: data-source 允许添加、修改、删除数据源 xa-data-source 允许添加、修改、删除 XA 数据源 添加数据源脚本如下: 13 [standalone@localhost:9999 /] data-source add --name=testDS --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --jndi-name=java:jboss/datasources/testDS --driver-name=h2 --user-name=sa --password=sa 删除数据源: [standalone@localhost:9999 /] data-source remove --name=testDS 如果每个项目的数据源配置都集中在 standalone.xml 或 domain.xml 文件中,而不能独立配置,在开发中是不大方便的。 幸好从 Jboss7.1.0.Final 开始,可以使用*-ds.xml 文件了。在 Jboss 以前的版本中*-ds.xml 是简单的 xml 文件,现在是 Iron-Jacamar 文件,需要使用 datasources-1_1.xsd schema。 IronJacamar 项目实现了 Java Connector Architecture 1.6 规范,是 AS 7 的数据源子系统提 供者。 (小知识:jacamar,鶲鴷,一种食虫鸟,生活在中美洲和南美洲,有长长的嘴和尾巴) IronJacamar 主页:http://www.jboss.org/ironjacamar。目前最新的稳定版本是 1.0.13.Final,最新的开发版是 1.1.0.Beta2, Jboss7.1.1.Final 的核心模块中安装的版本 是 1.0.9.Final。从 IronJacamar 文档中了解到,运行 doc\as 目录下的 as-upgrader.bat 脚 本,可以更新 AS 7 中的模块,命令如下: as-upgrader 1.0.13.Final D:\Server\jboss-as-7.1.1.Final 注意:经测试仅运行此命令能成功更新模块,但 jboss 不能启动了。 -ds.xml 文件示例(摘自 seam 文档,在 IronJacamar 的 doc\datasources 目录下提供了各种数据源示例文件): jdbc:hsqldb:. org.hsqldb.jdbcDriver sa IronJacamar1.1 提供了转换老式 ds.xml 文件的工具 converter.bat,在 doc\as 目录下,命令格式如下: converter -ds FULLY_QUALIFIED_SOURCE_FILE_NAME FULLY_QUALIFIED_TARGET_FILE_NAME 注:-ds.xml 这个功能主要用于开发,因此需要注意一些限制。不能通过管理界面(控制台、CLI 等)来修改它,只有有 限的运行时信息可用。此外,密码库和安全域是不可部署的,所以不能和一个数据源部署绑定。 如果使用JPA,需要删除persistence.xml文件中的hibernate.transaction.manager_lookup_class属性,这不再需要。 2.5 配置日志 Jboss 7日志可以在XML配置文件和日志管理属性文件内配置。默认日志配置在configuration目录的logging.properties 文件内。 通常情况下,对于大多数安装,logging.properties内的默认值已经足够了。如要自定义日志类别,建议在xml配置文件 (standalone.xml或domain.xml文件,logging subsystem)内配置,可以定义7个主要类别:  14  注意:应该使用 XML 配置文件,当 logging 子系统启动后日志管理属性会被忽略。 增加 org.jboss.as.jpa category 的例子: 2.6 通过文件系统部署 用户可以将部署内容(war、ear、jar、sar 等)放在 standalone/deployments 目录内,会自动部署到服务器运行时。 这是开发时常采用的方式。 注:特别是正在运行中的产品系统,推荐使用 Jboss AS 7 的管理 API 来部署内容,而不是依赖部署扫描子系统来周期性 地扫描这个目录。 部署模式 Jboss AS 7中的文件系统部署扫描器不同于以前的版本。扫描器能以两种不同的模式运作,这取决于它是否会直接监控 部署的内容,以决定部署(或重新部署)。 1) 自动部署模式 扫描器直接监控部署内容,自动部署新的内容,重新部署时间戳发生变化的内容。这与以前的AS版本行为相似,也有几 点不同之处:  如以展开的方式部署,其中的任何文件变化都将引起重新部署。因为Jave EE6应用并不需要部署描述符,所以没有尝试 监控部署描述符,仅当部署描述符发生变化时重新部署。  扫描器会在这个目录放一个标记文件,表明尝试部署或取消部署的状态。 2) 手动部署模式 扫描器不直接监视部署内容,而是由用户决定是否或何时部署或取消部署。扫描器依赖一个系统标记文件,用户添加或 删除标记文件,扫描器将部署、取消部署或重部署内容。 自动和手动部署模式能根据压缩部署和展开部署来独立配置。可通过standalone.xml文件内deployment-scanner元素的 auto-deploy属性来配置,如下: 默认压缩内容用自动部署的方式,展开内容的自动部署是禁用的。强烈推荐展开内容使用手动部署模式,因为展开内容 本质上是有缺陷的,扫描器会自动部署部分复制的内容。手动部署模式也允许替换部署资源(如html和css文件)而不会触发 重新部署。 标记文件 标记文件与相关的部署内容同名,只是附加了一个后缀名。不同的后缀名表明不同的意义。 .dodeploy 由用户放置,表明内容应被部署或重新部署到运行时 .skipdeploy 只要这个文件存在,禁用自动部署。最有用的地方是允许更新展开内容,扫描器不会在更新中开始重新 15 部署。也能用于压缩内容,尽管扫描器会检测正在进行中的变化,一直等待到修改完成。 .isdeploying 部署扫描服务放置,表明它已经注意到一个. dodeploy文件,正处在部署内容的过程中,当部署完成后, 将自动删除这个文件。 .deployed 部署扫描服务放置,表明内容已经被部署到运行时,如果用户删除这个文件将取消部署。 .failed 部署扫描服务放置,表明部署失败,文件内容将包含一些失败原因的信息。自动模式时,删除这个文件, 将有资格再次部署。 .isundeploying 部署扫描服务放置,表明它已经注意到一个.deployed文件已经被删除,正在取消部署内容。执行完毕 后这个文件会被删除。 .undeployed 部署扫描服务放置,表明内容已从运行时删除。如果用户删除这个文件,在手动模式下不会造成影响, 自动模式下会重新部署。 .pending 部署扫描服务放置,表明它已经注意到要部署内容,但尚未通知服务器部署。如果扫描器侦测到一些自 动部署内容仍在复制过程中,或者存在一些阻止自动部署的问题,将创建这个文件。只要这个条件成立,扫描器不会通知服 务器部署或取消部署任何内容。 示例: 1) 部署压缩内容 将war或ear拷贝到deployments目录即可,默认情况下,不需要添加标记文件,会自动生成。 2) 部署展开内容 将部署内容拷贝到deployments目录下并添加.dodeploy标记文件(如example.war.dodeploy)。 3) 取消部署 删除.deployed标记文件。 本部分内容可参见deployments目录下的README.txt。 2.7 使用 jboss-as-maven-plugin 部署 jboss-as-maven-plugin 插件最新版本能部署、重新部署、取消部署、运行应用。也可以部署或取消部署构件,如 JDBC Driver, 也可添加资源、执行 CLI 命令。插件现有以下目标:  jboss-as:add-resource 添加资源  jboss-as:deploy 部署或重新部署应用  jboss-as:deploy-artifact 部署构件  jboss-as:redeploy 重新部署应用  jboss-as:undeploy 取消部署的应用  jboss-as:undeploy-artifact 移除构件  jboss-as:run 运行服务器并部署应用  jboss-as:execute-commands 执行命令 注意,除jboss-as:run外,其他目标都需要在服务器正在运行时使用。插件利用JBoss AS Native Java Detyped Management API 来和服务器通讯。 为部署应用,只要添加以下简单的 Maven 配置: ... ... org.jboss.as.plugins jboss-as-maven-plugin 16 7.3.Final ... ... 可以将部署操作与某一阶段绑定,如下绑定了 install 阶段: ... org.jboss.as.plugins jboss-as-maven-plugin 7.3.Final install deploy ... 部署成功后会在 standalone.xml 中添加如下内容: 部署的文件存储在 standalone/data/content 目录下,子目录名与 sha1 值一致。 Domain 模式时,配置文件为 domain.xml,存储目录为 domain\data\content。 更多信息请参见 https://docs.jboss.org/jbossas/7/plugins/maven/latest/ 2.8 使用 Eclipse 部署 需要安装 Eclipse Indigo(Eclipse 3.7)、Jboss Tools 3.3 和 m2eclipse(推荐安装 1.1),并在 Eclipse 中配置好 Jboss7.1 服务器,在配置服务器时选择要部署的项目。配置步骤和以前的 Jboss Tools3.2 基本相同,此文略过。 17 在配置好的服务器上,点击右键也可以添加或移除项目。可通过右键菜单或右上角的工具条启动服务。 还可以通过 WEB 管理控制台或 CLI 命令部署应用,参见下节内容。 三、管理 Jboss AS7 提供两种机制管理正在运行的Jboss实例。  基于Web的管理控制台  命令行 通过这两种方式更改配置,都会持久化到XML配置文件中。服务器offline时,也可以手动编辑XML配置文件,将在下一次 启动时生效。鼓励使用Web界面或命令行而不是采用离线编辑的方式来更改配置文件。进程正在运行时,在外部修改配置文件 不会被检测到,可能会被覆盖。 3.1 WEB 管理控制台 WEB管理界面是一个GWT应用,使用HTTP管理API来配置management domain或standalone服务器。 HTTP API依赖HTTP协议,使用JSON编码协议和de-typed、RPC风格的API来描述和执行管理操作 可从欢迎页面进入管理控制台,也可直接访问这个地址:http://localhost:9990/console。 默认情况下,现在的Jboss 7.1.x是分布式安全的,默认的安全机制是基于HTTP Diges的用户名/密码验证。 出于安全原因,如果管理界面被意外地暴露于公网IP地址下,连接验证是必要的,因此默认没有配置初始用户。如在添 加用户前尝试连接管理控制台,将显示如下界面: 18 用户信息存储在standalone/configuration 或domain/configuration目录下的mgmt-users.properties文件内。为了添 加用户可使用add-user.bat工具,运行这个命令后显示如下界面: 19 Type of user 选择“Management User”,即a。 Realm 应使用默认值“ManagementRealm”,除非你修改了配置文件(standalone.xml或host.xml),使用了不同的名字。 安全域默认配置如下: 用户添加成功后会实时更新属性文件,可在错误页面点“Try Again”重新进入管理控制台。 “9990”是默认端口,可以修改配置文件中的http-interface端口号。 通过控制台能添加、修改、删除资源,创建数据源,部署应用,配置服务器等。 3.2 CLI(Command Line Interface) CLI通过de-typed管理模型,连接domain controller或standalone server来管理management domain或standalone服务 器。 native API依赖AS的native协议,利用开放二进制协议和RPC风格的API来描述和执行管理操作。 Native interface与http interface共享同样的安全配置,也支持本地的验证机制,CLI能依靠本地AS实例来验证,而不 需要输入用户名和密码。这种机制需要运行CLI的用户有读standalone/tmp/auth或domain/tmp/auth目录的权限,如果本地机 制验证失败将提示输入用户名和密码。连接到远程服务器默认需要用户名和密码。 CLI提供了与WEB管理控制台相同的功能。 运行如下命令启动CLI: jboss-cli --connect 20 没有指定host和port时,默认连接localhost:9999。在连接时设定参数的方法如下: jboss-cli --controller=127.0.0.1 --connect 其他常用参数: --help 查看完整的命令列表和命令语法 --files 指定包含命令和操作的文件路径 --gui,可以进入图形用户界面进行操作,如下: --command 指定单一的命令或操作 --commands 指定逗号分隔的命令或操作列表(列表内一定不能包含空格) --user 当控制器需要用户验证时,应指定用户名参数,否则会提示输入用户名 --password 指定验证密码 当然也可以在运行cli命令时,不加任何参数,完全以交互模式运行,如下: 在交互模式时,键入help也会显示帮助信息,键入help --commands会显示当前可用的命令。比如一些命令在建立连接后 才可用,一些命令依赖于特定的子系统。在命令后附加--help参数会显示命令的详细信息,如键入connect --help,会显示 connect命令的详细信息。命令支持tab自动完成功能。 常用命令: connect 连接到指定的主机和端口 deploy 部署应用 undeploy 取消部署 21 ls 列出node path内容 data-source 添加、修改、删除数据源 xa-data-source 添加、修改、删除XA数据源 quit 退出 示例: 1) 部署jdbc驱动 deploy d:\mysql-connector-java-5.1.15.jar 2)删除jdbc驱动 undeploy mysql-connector-java-5.1.15.jar 3)列出当前所有部署(包含data\content和deployments目录) ls /deployment (使用完整的命令时,如:jboss-cli --connect --commands=ls /deployment) 更多内容请查看Admin Guide,Jim Ma对这个文档进行了翻译可参阅http://jbosscn.iteye.com/blog/1153372 四、常见问题 1、怎样才能使用log4j.properties或log4j.xml代替日志子系统的配置? 注意:如果选择使用log4j配置文件,将不能在运行时改变log4j日志配置。 首先,在jboss-deployment-structure.xml文件内添加以下内容 然后将 log4j.properties 或 log4j.xml 文件放在部署的 lib 目录下。 更多内容请参见 Jboss 文档 How To
还剩21页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 20 金币 [ 分享pdf获得金币 ] 3 人已下载

下载pdf

pdf贡献者

kanmars

贡献于2012-11-05

下载需要 20 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf