【IT168 技术】 AS7的项目部署方式与原有版本相比有了较大变化,本文通过实例来讲解AS7中的项目部署方式。
AS7的项目部署方式与原有版本相比有了较大变化,本文通过实例来讲解AS7中的项目部署方式。
部署一个简单的Web项目
下载安装完成后,我们用standalone方式来启动JBoss AS7:
liweinan@smart:~/projs/jboss-7.0.0.CR1/bin$ ./standalone.sh
启动后,我们试着向AS7中部署一个简单的项目。首先使用Maven来创建一个简单的Web工程:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
生成的项目如下:
.
|-- pom.xml
`-- src
`-- main
|-- resources
`-- webapp
|-- WEB-INF
| `-- web.xml
`-- index.jsp
使用如下命令将项目打成WAR包:
mvn package
得到war:
target
`-- my-webapp.war
接下来,我们将这个war部署进AS7。在AS7的根目录下,有一个名为'standalone'的目录,当AS7以standalone模式运行时,我们要将项目部署到这里面,进入到standalone目录:
liweinan@smart:~/projs/jboss-7.0.0.CR1$ cd standalone
liweinan@smart:~/projs/jboss-7.0.0.CR1/standalone$ ls
configuration deployments log
data lib tmp
liweinan@smart:~/projs/jboss-7.0.0.CR1/standalone$
standalone目录中包含许多运行所需的内容,比如'configuration'目录包含了服务器的有关配置,我们稍后会进行说明。现在我们要关心的是'deployments'目录,我们要将需要部署的项目放在这里,JBoss AS7会自动扫描这个目录并进行部署。我们将刚刚制作好的my-webapp.war拷贝至deployments目录:
liweinan@smart:~/projs/my-webapp/target$ cp my-webapp.war ~/projs/jboss-7.0.0.CR1/standalone/deployments/
此时查看AS7的日志输出:
16:12:33,822 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) Starting deployment of "my-webapp.war"
16:12:36,616 INFO [org.jboss.web] (MSC service thread 1-4) registering web context: /my-webapp
16:12:36,740 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "my-webapp.war"
从日志中可以看出,项目被成功地部署进了AS7。我们试着访问下已部署的服务:
可以看到部署成功。
AS7中项目的自动部署及手工部署
我们在上一节通过将项目拷贝至deployments目录,就实现了AS7对项目的自动扫描及自动部署。实际上AS7还支持手工的部署模式,这样,我们就可以控制项目的部署及启动时机。配置AS7的部署模式有两种方式:一个是通过在配置文件指定,另一个是在AS7运行时,通过管理端来进行实时的配置。
我们首先来看一下配置文件中的内容,JBoss AS7相对以前版本比较,大大简化了精减了配置文件的数量。原来的*-ds.xml等数据库的配置文件,都被合并至了统一的配置文件:standalone.xml[3] 。这个文件位于刚才提到的/standalone/configuration目录当中,详细讲解这个配置文件也不是这篇文章要关注的地方,因此我们只需要了解一下这个配置文件中,与部署有关的这段内容:
relative-to="jboss.server.base.dir" path="deployments" />
可以看到,配置中指定deployment-scanner去扫描deployments目录,扫描间隔为5秒钟。
除了在配置文件中进行配置,我们也可以在AS7实时运行时,通过管理端来改变AS7的部署方式。首先是登录到管理端,使用AS7中bin目录中带有的管理端连接程序jboss-admin.sh
liweinan@smart:~/projs/jboss-7.0.0.CR1/bin$ ./jboss-admin.sh
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect 127.0.0.1
Connected to standalone controller at 127.0.0.1:9999
[[email protected]:9999 /]
连接成功后,我们可以查看当前的scanner配置:
[[email protected]:9999 /] /subsystem=deployment-scanner:read-resource(recursive=true)
{
"outcome" => "success",
"result" => {"scanner" => {"default" => {
"auto-deploy-exploded" => false,
"auto-deploy-zipped" => true,
"deployment-timeout" => 60L,
"name" => "default",
"path" => "deployments",
"relative-to" => "jboss.server.base.dir",
"scan-enabled" => true,
"scan-interval" => 5000
}}}
}