一直以来一直使用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环境以及如何将项目部署到这个环境中。 首先,确保你已经安装了Java Development Kit (JDK),这是JBoss运行的基础。配置`JAVA_HOME`环境变量指向JDK的安装...
本文将深入探讨在JBoss应用服务器上部署EJB的详细步骤,这对于理解Java EE架构和进行实际开发至关重要。 一、EJB简介 EJB是Java EE规范的一部分,它提供了一种标准的方式来实现业务逻辑,分为三种主要类型:会话...
本文将深入探讨这些常见问题以及解决方案。 首先,让我们了解"刷新"在Web项目部署中的含义。在Eclipse中,当我们修改了Java源代码、JSP文件或任何其他资源后,我们需要确保这些改动能够反映到运行中的应用程序。...
这里我们将深入探讨如何使用httpd(Apache HTTP Server)作为负载均衡器,结合Jboss应用服务器进行集群部署,同时利用Linux操作系统来实现这一目标。 一、httpd负载均衡 httpd(Apache HTTP Server)作为全球最...
这篇博客“JBoss部署成为Linux服务”显然会介绍如何在Linux操作系统上将JBoss配置为一个系统服务,以便它可以随系统的启动和关闭自动启动和停止,确保应用程序的稳定运行。下面我们将深入探讨这个主题。 1. **JBoss...
本篇文章将深入探讨热部署的原理以及如何在JBOSS服务器上实现这一功能。 首先,我们需要理解热部署的核心概念。热部署是通过监控应用中的类加载器,当检测到新的类文件时,自动替换旧的类,而无需重启服务器。Java...
### JBoss部署详解 JBoss是一款开放源代码的应用服务器,被广泛用于开发和部署企业级应用程序。本文将深入探讨JBoss 4.0.0及以上版本的部署过程,特别是那些与早期版本不同的关键步骤。 #### 安装软件 部署JBoss...
Apache安装及JBoss部署是企业级应用中常见的技术实践,主要涉及两个核心组件:Apache HTTP Server和JBoss Application Server。Apache作为广泛使用的Web服务器,负责处理HTTP请求,并可以通过连接器与应用服务器进行...
本文将围绕“Jboss下开发ejb应用之一会话bean的应用”这一主题,深入探讨如何在Jboss应用服务器上开发和部署会话Bean,以及涉及到的相关工具和源码。 会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供...
在本篇文章中,我们将深入探讨JBoss的基础知识,包括其核心概念、安装配置、管理工具以及常见问题的解决方法。 1. **JBoss核心概念** - **应用服务器**:JBoss作为应用服务器,为Java应用程序提供了运行环境,支持...
在本文中,我们将深入探讨JBoss的启动过程及其相关知识点。 1. **JBoss目录结构**: JBoss的安装目录包含多个子目录,如`bin`、`server`、`deploy`等。`bin`目录下有启动和停止服务器的脚本,`server`目录则包含了...
在本文中,我们将深入探讨JBoss服务器的下载及其重要性。 首先,我们要明确为何选择JBoss。JBoss由Red Hat公司维护,是Java开发者社区中的热门选择,因为它提供了免费且功能强大的平台来部署和管理Java应用程序。它...
本文将详细解析"jboss-4.0.2.zip"这一版本的JBoss应用服务器,深入探讨其核心功能、配置、部署以及在企业级应用中的重要性。 1. **JBoss概述** JBoss是Red Hat公司的一个产品,最初由JBoss社区开发。JBoss 4.0.2是...
在本文中,我们将探讨JBoss的核心特性、如何使用以及它在源码分析和工具支持方面的优势。 ### JBoss的核心特性 1. **Java EE兼容性**:JBoss完全遵循Java EE规范,提供对各种Java EE组件的支持,如EJB(Enterprise...
本文将深入探讨如何将JBoss服务器与Eclipse进行无缝整合,以提升开发效率和管理便捷性。 首先,我们需要了解Eclipse的插件系统。Eclipse允许通过安装各种插件来扩展其功能,以便支持不同的开发需求。对于JBoss的...