bin目录下standalone.sh脚本,用于启动jboss
bin目录下jboss-cli.sh脚本,用于关闭jboss 用法jboss-cli.sh --connect --command=:shutdown
先说项目删除:
看下面会知道一共有四种项目发布的方式,最简单就是直接将war文件复制到standalone目录下的deployments文件下,此种方式对应的删除也最简单直接将deployments目录下的文件删除即可
使用其他方式部署后,deployments文件下找不相应的项目,此时需要将standalone目录下conf目录下的standalone.xml文件中相应的部分删除(<deployments>)
项目发布:
1. 使用UI Console进行部署
jboss提供图形界面的部署方式,启动jboss后,访问会进入jboss的Welcome界面,
点击“”【】会进入控制台界面,注意第一次运行时会跳转的一个错误页面提醒你还没有设置用户名密码,上面有提示如何去设置用户名密码,按照上面的提示去创建。
进入JBOSS_HOME/bin目录下,运行add-user.sh脚本:
点击(此处)折叠或打开
-
./add-user.sh
-
-
What type of user do you wish to add?
-
a) Management User (mgmt-users.properties)
-
b) Application User (application-users.properties)
-
(a):
-
-
Enter the details of the new user to add.
-
Realm (ManagementRealm) :
-
Username : jboss
-
Password :
-
Re-enter Password :
-
About to add user 'jboss' for realm 'ManagementRealm'
-
Is this correct yes/no? yes
-
Added user 'jboss' to file 'JBOSS_HOME/standalone/configuration/mgmt-users.properties'
- Added user 'jboss' to file 'JBOSS_HOME/domain/configuration/mgmt-users.properties'
这里选择ManagementRealm,默认就是这个,Realm:直接回车(默认),然后Username,Password,yes确定,这样jboss就会在相应的文件中加入了这个用户。再重新访问“”,这个时候就会让你输入用户名、密码,输入以后就进入操作界面。
(1)选择Manage Deployments --> 右边Add Content --> 选择文件mvntest.war --> Next --> Save;
(2)这样还没有部署完毕,要enable这个应用,才算部署成功【同样也可以disable和remove应用】
【不管以何种方式部署的应用都可以在这个图形界面进行管理!】
2. 使用命令行进行部署
(1) 进入JBOSS_HOME/bin目录下,执行jboss-cli.sh脚本,然后输入connect进入客户端【提供命令行管理客户端】
点击(此处)折叠或打开
-
./jboss-cli.sh
-
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
-
[disconnected /] connect
- [standalone@localhost:9999 /]
输入命令 deploy 全路径/mvntest.war 部署
(3)取消部署
输入命令 undeploy mvntest.war 【这里输入名字即可】
3. 使用mavenn的方式进行部署
如果项目是使用maven构建的,可以使用jboss插件进行部署
(1) 首先在pom.xml文件中加入
点击(此处)折叠或打开
-
<plugin>
-
<groupId>org.jboss.as.plugins</groupId>
-
<artifactId>jboss-as-maven-plugin</artifactId>
-
<version>7.1.1.Final</version>
- </plugin>
(2) 部署
执行 mvn jboss-as:deploy 命令,部署应用
(3) 移除部署
执行 mvn jboss-as:undeploy命令
4. 拷贝部署
这就是比较传统的一种部署方式,就是将mvntest.war文件拷贝到
JBOSS_HOME/standalone/deployments目录下,它会自动进行部署,部署成功后会生成一个mvntest.war.deployed, 里面内容是部署的war包的名字【与tomcat不同的是它不会解压war文件】
问题
在测试了上面几种不同的部署方式后,遇到了一些问题,试着进行了实验和探讨:
1. 在进行上述几种部署方式后,除了传统方式,我对前三种部署方式比较好奇,因为他们部署成功后,并没有将war文件拷贝到JBOSS_HOME/standalone/deployments中,那这些部署文件放到哪里了呢?
(1) 首先,我想到的是jboss采用某种方式定位到war包所在位置,直接在war包所在的地方部署,因此我做个实验,在部署成功后删除了war包,发现web应用还能正常运行。所以否定了这种想法,那么jboss一定将这些war包拷贝到某个地方部署。
(2) 后来发现采用前三种方式部署时,部署成功后(但还没enable),会在standalone的configuration目录的standalone.xml文件中多出以下内容:
点击(此处)折叠或打开
-
<deployments>
-
<deployment name="mvntest.war" runtime-name="mvntest.war" enabled="false">
-
<content sha1="7d573693d193f5b9e650ee93140dacfc6c26e70a"/>
-
</deployment>
- </deployments
这个地方要注意的是,如果采用第四种也就是传统方式部署的话,并不会进行上面的配置和拷贝,jboss会自动扫描deployments文件夹。
2. jboss会自动扫描deployments文件夹,如果想加入自己的部署文件夹,需要怎么办?
在standalone.xml找到以下节点:
点击(此处)折叠或打开
-
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
-
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>
- </subsystem>
点击(此处)折叠或打开
-
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
-
<deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir" path="deployments" />
-
<deployment-scanner name="my-external-deployment-scanner" path="/home/xxx/xxx/webapps" scan-interval="5000" />
- </subsystem>
3. 我们知道tomcat可以直接将web应用的文件夹放入webapps进行部署,而jboss默认是不支持这样做,那想部署web应用文件夹需要怎么做?
我们可以学着jboss部署war包的方式,首先将你的文件夹命名为mvntest.war,然后手动增加一个“mvntest.war.deployed”的文件,然后将里面内容写为mvntest.war即可
4. 后台启动和终止
jboss standalone是前台启动,启动后关闭终端,jboss就终止了,jboss后台启动的方法:
1. nohup ./standalone.sh &
2. ./standalone.sh & 启动后,exit即可
使用前台启动ctrl+c就可关闭jboss,使用后台启动,需要使用以下命令关闭,进入bin目录:
本地:./jboss-cli.sh --connect command=:shutdown
远程:./jboss-cli.sh --connect controller=
(或者暴力解决kill -9 pid)