JBoss
JBoss笔记
概述
JBoss是一个基于J2EE的开放源代码的应用服务器,是全世界开发者共同努力的成果。
它完全实现了J2EE的规范: EJB 、 JMS 、 JTS/JTA、 Servlet and JSP、 JNDI,它还提供一些高级特性,比如集群、JMX、Web Service。
它还整合了IIOP(Internet Inter-ORB Protocol互联网内部对象请求代理协议)
因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使用它,而不用支付费用。
JBoss各版本对比
- JBoss AS:开源社区版本,发布比较频繁。
- JBoss EAP(Enterprise Application Platform):红帽在开源版本上构建的企业版本。
- Wildfly:是JBoss AS新的项目名称,从Jboss8开始,新的JBoss AS改名为WildFly。之后Jboss名称只用于红帽的商业版本JBoss EAP。
JBoss各版本官网
JBoss EAP,红帽商业版
http://developers.redhat.com/products/eap/overview/WildFly,JBoss最新社区版
http://wildfly.org/JBoss AS,旧社区版下载
http://jbossas.jboss.org/downloads官方文档(可选择jboss版本)
https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/
安装
JBoss与JDK安装
- 安装JDK
以安装jdk-6u45-linux-x64.bin为例$ cp jdk-6u45-linux-x64.bin /home/jboss/ $ chmod +x jdk-6u45-linux-x64.bin $ ./jdk-6u45-linux-x64.bin
- 配置环境变量
$ vi ~/.bash_profile JAVA_HOME=/home/jboss/jdk1.6.0_45/ PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME export PATH $ source ~/.bash_profile $ java -version
- 安装jboss
jboss的安装只需要解压缩即可,例如
unzip jboss-eap-5.1.0.zip
安装JBoss注意事项
- 不要安装到中文目录下
- 不要安装到带空格的路径(目录名带空格)下
- Linux下安装启动JBoss需要配置hosts文件,否则启动会报UnknownHostException错误,hosts文件中配置主机名和IP地址映射关系。
JBoss目录说明
bin
,启动和关闭JBoss的脚本,.sh
是linux版,.bat
是windows版。例如run.sh为linux下的启动脚本,run.bat为windows下的启动脚本;shutdown.sh为linux下的关闭脚本,shutdown.bat为windows下的关闭脚本。client
,这个文件夹用来保存Java客户端应用或外部web容器(在JBoss之外运行)所需的配置文件和Jar文件,是客户端与JBoss通信所需的的Java库,方便客户端的使用。我们客户端如果要使用Jboss服务器的bean等,需要引入这个文件夹里所有的Jar包才可以。docs
,配置的样本文件(数据库配置等)docs/dtd
,在JBoss中使用的各种XML文件的DTD
lib
,JBoss所需的jar文件。JBoss启动时加载,且被所有JBoss配置共享,这个属于JBoss自身需要的jar文件,所以不要把我们自己的jar文件放在这个目录。common
,这个文件夹在JBoss4里没有,在JBoss5中新加的,里面都是一些jar文件,包括log4j和hibernate等包,个人认为这些包是可以与JBoss结合使用的,是我们使用JBoss是可选用的功能,JBoss应该是为了给我们使用者方便,把这些它支持的功能jar也一起加了进来。server
,包含JBoss服务器实例的配置集合。这里的每个子目录就是一个不同的服务器实例配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。JBoss4里面默认有三个配置集合:minimial,default和all,默认使用的是default。JBoss5之后,里除了有以上三个配置外,又加入了web和standard两项。server/all
,这个配置是JBoss的完全配置,启动所有服务,包括集群和IIOP。server/default
,这个是JBoss的默认配置。 通常使用的是这个配置,不包括集群和IIOP。没有在 JBoss 命令行中指定配置名称时使用。server/minimal
,仅加载启动JBoss所需的最少服务,如日志服务、JNDI和URL部署扫描器(发现新的部署),不包含Web容器、EJB和JMS。
default实例配置
server目录中每个子目录就是一个不同的服务器实例配置,子目录的名字表示配置的名字。
server/default/conf
,JBoss的配置文件。conf目录中包含了这个服务器的启动描述文件jboss-service.xml。这个文件定义了服务器运行时间内提供哪些固定的核心服务。server/default/deploy
,JBoss的热部署目录。这是部署J2EE应用程序(jar、war和ear文件)的位置,只需将相应文件拷贝到该目录下即可。deploy中包含可热部署的服务(可以在服务器运行时动态添加和删除)。我们可以发布应用程序代码的压缩包(JAR,WAR和EAR文件)到这里。这里目录会被搜索更新,所有修改的组件都会被自动重新部署。 (这个文件夹的作用很像Tomcat里的webapps)server/default/lib
,这个目录中包含这个服务器配置需要的JAR文件,JBoss在启动特定配置时加载他们。这些java库不会被热部署,所以我们可以添加我们自己需要的库文件到这里(使用default的情况下),如JDBC驱动,程序所需接口等。所有的jar文件将在服务器启动的时候被加载到共享的classpath中。 因为是启服务时加载的,所以属于用户级别的。(all和minimial,web,standerd配置都包含以上四个目录。)server/default/data
,JBoss的数据库文件。服务中需要存储内容到文件系统的都会保存到data目录。比如,嵌入的数据库,或者JBossMQ。 JBoss内嵌的Hypersonic database的数据也是保存到这里的。server/default/log
,JBoss的日志文件。 如果我们要修改日志输出目录,可以通过配置conf/log4j.xml实现。可通过改文件夹内容的记录来查看每天的日志输出情况。server/default/tmp
,JBoss的临时文件。用来提供JBoss服务的临时存储。server/default/work
,提供给jboss web编译jsp文件用。 log、tmp和work是default配置独有的。
目录data、log、tmp和work在JBoss安装后并不存在,当JBoss运行时自动建立。
server/default/conf
jboss-service.xml
,定义核心服务及其配置。jndi.properties
,定义了InitialContext属性,当一个InitialContext被无参数构造函数创建时会被使用到。jboss-log4j.xml
,包含了jboss使用的log4j日志配置。login-config.xml
,这个文件包含了服务器端验证的配置的样例,当使用基于JAAS验证时会被用到。props/*
,这个文件夹目录包含了jmx-console所需的用户和角色配置文件。standardjboss.xml
,提供了JBoss默认容器配置。standardjbosscmp-jdbc.xml
,这个文件提供了JBoss CMP 引擎的默认配置文件。xmdesc/*
,包含了jboss-service.xml 中定义的服务的XMBean描述文件。
启动
启动参数配置
即run.sh脚本命令可带的参数
绑定启动IP(JBoss EAP 5.1默认启动只能以localhost访问)
-b IP
,或--host= IP
,所有JBoss服务绑定的地址。
jboss启动时,默认只允许本机进行连接,即如果不加任何参数的话,只监听127.0.0.1,也就是默认绑定到localhost,用本机以外的地址就访问不了。如果需要从其它机器访问JBoss服务,则必须配置该参数,-b 本机IP 或 -b 0.0.0.0选择profile(选择服务器实例)
-c PROFILE
,或--configuration=PROFILE
,如-c production(默认-c default)
production必须是JBOSS_HOME/jboss-as/server/目录下的一个子文件夹。配置系统参数文件
-P 属性配置文件
,或--properties=属性配置文件
,如-P application.properties指定HA分区的名称,设置集群分区名称,默认值为DefaultPartition
-g HA名称
,或--partition=HA名称
,例如-g aisServer4配置UDP多播地址
-u IP
, 或--udp=IP
配置系统参数
-D<name>[=<value>]
,如-Djboss.server.log.dir=/tmp/log-Djboss.service.binding.set=ports-01
,设置jboss绑定端口为默认8180(ports-01表示8180),还可设为默认ports-default(8080)-Djboss.messaging.ServerPeerID=n
,设置消息集群ID为n,JBoss消息要求这个值在集群中唯一
JBoss 4.0.4GA 启动参数解释
-c, --configuration=
,指定服务器启动的配置(default、all、minimal)-b, --host=
,所有JBoss Service绑定的地址-g, --partition=
,HA分区的名称(缺省为DefaultDomain)-u, --udp=
,UDP的多播地址-P, --properties=
,从指定的url加载系统属性-D[=]
,设置系统属性-h, --help
,显示帮助信息-V, --version
,显示版本信息-d, --bootdir=
,设置启动补丁目录的位置;必须是绝对路径或者url-p, --patchdir=
,设置补丁目录的位置;必须是绝对路径或者url-n, --netboot=
,从指定的url网络位置启动-B, --bootlib=
,将其它的jar包添加到bootclasspath的前面-L, --library=
,将其它的jar包添加到 loaders classpath-C, --classpath=
,将其它的url添加到loaders classpath-l, --log=
,设置日志记录插件类型
以默认配置启动
进入目录jboss-eap-5.1/jboss-as/bin
执行脚本./run.sh -b 0.0.0.0
或 nohup ./run.sh -b 0.0.0.0 &
后台启动
启动后查看日志server.log,有Started in xxs:xxms
浏览器访问http://localhost:8080 出现JBoss说明页表示启动成功。
指定服务器配置启动
启动JBoss时,如果run.sh不带任何参数,则使用的配置是server/default目录下的配置。
如果要以其它目录下的配置启动JBoss,可以使用如下参数:./run.sh -c all
上述命令将以all目录下的配置信息启动JBoss。也可以在server目录下新建目录,按自己的需要写配置文件。
JBoss端口配置
可以在一台机器上跑多个JBoss实例,JBoss提供了自动更改端口的办法。
JBoss提供一个-Dproperty=value
形式的JVM启动参数:-Djboss.service.binding.set=ports-default
posts-default,表示使用默认端口8080
posts-01,posts-02,posts-03,分别为8180, 8280,8380,即posts-0i是在默认端口的基础上加100*i
在执行run.sh启动脚本时可以增加此参数来改变服务端口,例如run.sh -Djboss.service.binding.set=ports-01
,表示以端口8180来启动。
如果4个都不够用,可以修改posts-xx的配置文件,增加几个。这个的配置文件在jboss-5.1.0.GA/server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml(其中default为不通的启动目录)
关键配置文件
JBOSS_HOME/jboss-as/bin/run.conf:Linux下启动脚本配置文件
JBOSS_HOME/jboss-as/bin/run.conf.bat:Windows下启动脚本配置文件
JBOSS_HOME/jboss-as/server/default/conf/jboss-service.xml:JBoss核心配置文件
JBOSS_HOME/jboss-as/server/default/conf/jboss-log4j.xml:JBoss日志配置文件
JBOSS_HOME/jboss-as/server/default/conf/props/jmx-console-users.properties:jmx-console控制台登录账号配置
JBOSS_HOME/jboss-as/server/default/conf/bootstrap/profile.xml:配置JBoss部署包扫描目录等
JBOSS_HOME/jboss-as/server/default/deploy/hdscanner-jboss-beans.xml:部署包扫描时间配置等
应用部署
JBoss中的部署过程非常的简单、直接并且支持热部署。在每一个配置中,JBoss不断的扫描一个特殊的目录的变化:
$JBOSS_HOME/server/config-name/deploy
你可以把下列文件拷贝到此目录下:
- 任何jar库(其中的类将被自动添加到JBoss的classpath中)
- EJB JAR
- WAR(Web Appliction aRchive),包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。
- EAR(Enterprise Application aRchive),包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。
- 包含JBoss MBean定义的XML文件
- 一个包含EJB JAR、WAR或者EAR的解压缩内容,并以.jar、.war或者.ear结尾的目录
自定义部署目录
修改$JBOSS_HOME/jboss-as/server/default/conf/bootstrap/profile.xml文件
参考
Jboss基础及简单的应用(jboss安装)
http://www.cnblogs.com/howie-yuan/p/5779913.htmlJBOSS5.0 配置详解(转)
http://topmanopensource.iteye.com/blog/1840379JBoss5目录结构
http://blog.csdn.net/wanghuan203/article/details/8810895jboss之启动加载过程详解(-)
http://www.2cto.com/os/201404/293620.html
域(managed domain)模式配置
这是jboss eap 6的新特性,eap5中没有。
jboss eap 6 提供了两种操作模式:standalone(独立服务模式) 和managed domain(受管域).两种模式的主要区别在于对服务器的管理,而不是它们为满足最终用户请求而提供的功能。
domain 模式是通过单个控制点来管理多个 jboss eap 6 实例的模式。集中管理的jboss eap 6 服务器集合被称作域的成员,域里所有的jboss eap 6 实例共享一个公共的管理策略,以及配置。
日常开发中,使用standalone模式足已;但生产部署时,一个app,往往是部署在jboss集群环境中的,如果所有jboss server均采用standalone模式,会给运维带来极大的工作量,需要每台jboss server上逐一部署/更新,显然不适合。
domain模式正是为了解决这一问题,该模式下,所有jboss server可以划分成不同的group(注:这里的jboss server并不一定要对应某台物理机或虚拟机,一个os上,可以同时run多个jboss server实例,所以本文中的jboss server均指某个运行中的jboss server instance),每个group中可以包含多个jboss server,所有这些jboss server中,可以指定一台做为域控制器(domain controller),俗称master server,其它jboss server均为Host Controller(俗称slave server)。
master上可以控制所有jboss server,并监控其运行情况,部署应用时,一个war包,只需要部署到group上,该group中的所有jboss server即会同步自动部署。
Managed Domain要区别与Cluster,Cluster的主要功能是负载均衡、容灾,而Managed domain的目的主要在于统一管理。
jboss eap 6 domain(域) 模式配置
http://www.jianshu.com/p/164421fe2111jboss eap 6.3 域(Domain)模式配置
http://www.cnblogs.com/yjmyzz/p/3976412.html
上一篇 Apache-httpd
下一篇 XShell
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: