JBoss AS7 最近发布了 7.0.0.CR1 版本,CR意即Candidate Release(候选发布版),是JBoss AS在Alpha → Beta之后相对比较完整的一个版本,包含了CDI,JAX-RS等诸多重要特性。这次的7.0.0.CR1版本代号White Rabbit(白兔子)。由于采用了新的MSC内核和JBoss Modules架构,其运行和启动速度真正做到了动若脱兔。让我们一起来体验下吧!
首先是下载JBoss AS 7.0.0.CR1,访问JBoss AS的下载页面:
http://www.jboss.org/jbossas/downloads
将最新版的JBoss AS7下载下来(本文撰写时最新版本为7.0.0.CR1,代号White Rabbit):
除了JBoss AS以外,我们还可以把quickstarts包一起下载下来,这个包里面含有一些样例工程,可以部署进JBoss AS 7,我们稍后讨论。
JBoss AS7的安装包下载完成后,将其解压。解压缩完成后,我们可以看看AS7里面都有什么内容:
/jboss-7.0.0.CR1$ ls
bin docs jboss-modules.jar standalone
bundles domain modules welcome-content
可以看到AS7的目录结构和AS6及之前的版本有很大的不同了,这是由于AS7的架构与之前的版本相比,经历了重新架构和代码重写,有了本质上的飞跃。探讨AS7的设计架构不是本文重点,我们继续来看如何运行及启动它:进入bin目录,可以看到有一些命令可供我们使用:
/jboss-7.0.0.CR1/bin$ ls
domain.bat jboss-admin.bat standalone.conf wsconsume.sh
domain.conf jboss-admin.sh standalone.conf.bat wsprovide.bat
domain.conf.bat scripts standalone.sh wsprovide.sh
domain.sh standalone.bat wsconsume.bat
run.sh
没有了。取而代之的是
standalone.sh
和
domain.sh
。AS7不再使用统一的
run.sh
加上启动环境参数(default, all)的方式来管理服务,而是将启动方式区分为独立运行(standalone)和域运行(domain)。AS7默认支持多域,在架构上面与原来的组播群集有很大的不同,我会在随后的文章中重点介绍。在这里我们可以首先试玩下以独立模式启动AS7,使用standalone.sh(如果是在Windows下,运行standalone.bat)启动AS7服务器:
|
从启动日志里面可以看出来,AS7使用了新的JBoss Module来加载模块,这是AS7中全新的设计。此外,新的MSC内核的身影也可以在日志中看到。此外,默认启动的模块还包括XNIO高速IO,JCA子系统等。看一下最后一行,AS7的启动时间,在我的Macbook Air 1.4Ghz Core Duo + 2GB内存的低配下达到了惊人的6秒。
接下来我们试着在AS7上面部署应用玩玩看,刚才一起下载的quickstart包有用了,里面有一些可供部署了例子,我们将压缩包解开,使用里面的numberguess例子,进入到numberguess目录,执行mvn的部署命令:
/jboss-as-quickstarts-7.0.0.CR1/numberguess$ mvn jboss-as:deploy
22:20:28,184 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) Starting deployment of "jboss-as-numberguess.war"
22:20:28,340 INFO [org.jboss.weld] (MSC service thread 1-8) Processing CDI deployment: jboss-as-numberguess.war
22:20:28,390 INFO [org.jboss.weld] (MSC service thread 1-7) Starting Services for CDI deployment: jboss-as-numberguess.war
22:20:28,414 INFO [org.jboss.weld.Version] (MSC service thread 1-7) WELD-000900 1.1.2 (AS7)
22:20:28,437 INFO [org.jboss.weld] (MSC service thread 1-3) Starting weld service
22:20:28,777 INFO [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-8) Initializing Mojarra 2.0.4 (FCS b09) for context '/jboss-as-numberguess'
22:20:29,514 INFO [org.jboss.web] (MSC service thread 1-8) registering web context: /jboss-as-numberguess
22:20:29,557 INFO [org.jboss.as.server.controller] (pool-1-thread-1) Deployed "jboss-as-numberguess.war"
从日志中我们可以看到,AS7检测到待部署的项目需要Weld模块,因此在此时AS7中的Weld模块才被加载,这种加载方式被称为按需加载(on-demand),只有在需要的时候加载相应的模块,从而大大加快了AS7本身的启动速度。
我们来玩玩看这个例子,访问页面:
http://127.0.0.1:8080/jboss-as-numberguess/home.jsf
是一个猜数字的游戏:
最后提供一些常用的AS7参考资料
- https://docs.jboss.org/author/display/AS7/Getting+Started+Developing+Applications+Guide QuickStart里面所包含的例子的详细讲解
- http://jboss.org/tools Jboss的工具。在Eclipse里面进行AS7和Java EE相关项目开发的插件,Redhat自己在维护这些项目,与JBoss AS结合得非常紧密
- http://www.jboss.org/webinars – JBoss AS开发人员的技术文章汇总,非常多的好东西。
来源:oschina
链接:https://my.oschina.net/u/103999/blog/40862