一直以来一直使用tomcat,今天学习了一下jboss,在这里总结一下jboss几种部署的方法,并对其中的一些地方进行了实验和探讨。
Jboss版本: 7.1.1.Final
启动模式:standalone模式
测试war包:mvntest.war (maven构建)
1. 使用UI Console进行部署
jboss提供图形界面的部署方式,启动jboss后,访问http://localhost:8080/会进入jboss的Welcome界面,
点击“Administration Console”【http://localhost:9990/console/App.html#server-overview】会进入控制台界面,注意第一次运行时会跳转的一个错误页面提醒你还没有设置用户名密码,上面有提示如何去设置用户名密码,按照上面的提示去创建。
进入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就会在相应的文件中加入了这个用户。再重新访问“Administration Console”,这个时候就会让你输入用户名、密码,输入以后就进入操作界面。
(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 /]
(2) 部署
输入命令 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>
这个sha1值大有玄机,接着在standalone的data/content目录下发现一个7d文件夹,然后里面有个573693d193f5b9e650ee93140dacfc6c26e70a文件夹(两个文件夹名字加起来就是上面的sha1值),下面有个content.zip的文件,解压开就是我的web应用。原来采用前三种部署方式,jboss会在standalone.xml加入部署信息,并计算出该web应用的一个sha1值,然后在data/content目录下建立一系列文件夹将应用使用zip打包放入【首先去web应用的sha1值(40个)的前2个字符创建第一层文件夹,再用余下的38个字符创建第二层文件夹,在将web应用打包进content.zip】。
这个地方要注意的是,如果采用第四种也就是传统方式部署的话,并不会进行上面的配置和拷贝,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>
这个是扫描deployments文件夹的配置,然后加入我们的配置:
<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=<IP>:<port> command=:shutdown (端口为9999)
(或者暴力解决kill -9 pid)
相关推荐
jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署
JBOSS,JBoss安装部署 JBOSS,JBoss安装部署
Jboss项目部署文档
本文主要是关于jboss7上如何进行开发部署,能够使用jboss4.2版本平滑地移植到jboss7。部署方式尽量简单,改动尽量少,不影响其他性能。
JBoss完全实现了J2EE的服务栈: EJB (Enterprise JavaBeans) JMS (Java Message Service) JTS/JTA (Java Transaction Service / Java Transaction API) Servlet and JSP (JavaServer Pages) JNDI (Java Naming and ...
Linux下JBOSS部署手册
NULL 博文链接:https://lionelf.iteye.com/blog/1532452
JBOSS上EJB的配置、部署,以及JBOSS中EJB的开发
jboss7window系统下安装部署图解说明
1、jboss配置 2、使用jboss部署项目方法及注意事项
jboss_EAP 部署在Window平台上
JBOSS EAP6安装部署手册 windows平台
jboss热部署必须文件.更改jsp文件不用再频繁关闭、启动jboss.
[Packt Publishing] JBoss AS 7 配置部署管理教程 (英文版) [Packt Publishing] JBoss AS 7 Configuration, Deployment and Administration (E-Book) ☆ 出版信息:☆ [作者信息] Francesco Marchioni [出版机构...
描述jboss在windows上的安装及程序部署过程。
JBoss5部署原理 基本可以了解 具体的可以参考官方文档
jboss下部署ejb详细步骤
描述了apache jboss3.2.6做负载均衡(load balance)的部署细节以及一些常见错误说明;描述了部署jboss3.2.3/3.2.6时一些心得、常用配置项。 目 录 1 .Apache2.0及连接器jk1.2的编译部署 4 1.1下载相关软件包 ...
windows环境下使用jboss配置web应用 配置单向双向SSL
<project name="JBoss" default="ejbjar" basedir="."> <property environment="env"/> ${basedir}/src/main"/> ${basedir}/src/resources"/> <property name="jboss.home" value="${env.JBOSS_HOME}"/> ...