JBoss快速入门知识
1、下载地址: http://www.jboss.org/jbossas/downloads
2、解压 jboss-as-7.1.1.Final.zip (本文以7.1.1版本为准,其中7.1和7.0有不少区别)
以下已经配好java环境忽略
系统变量->新建->变量名:JAVA_HOME = C:\Java
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
3.目录结构
standalone目录结构
Domain目录结构
启动时创建。在每个服务器的目录内包括以下的子目录:
4.Domain模式
JBoss AS7加入了域domain的概念,目的是使多台JBoss AS服务器的配置可以集中于一点,统一配置、统一部署,从而实现在管理多台JBoss AS服务器时,实现集中管理。
域的目的是将多台服务器组成一个服务器组,并为一个服务器组内的多台主机提供:
1.单点集中配置(通过一个域控制器,即Domain Controller,实现组内主机的统一配置)
2.单点统一部署,通过域控制器将项目一次部署至组内全部主机
5.操作
简单开启服务器的命令
以standalone模式运行服务器:
<JBOSS_HOME>\bin\standalone.bat (Windows) <JBOSS_HOME>/bin/standalone.sh (Unix / Linux)
以domain模式运行服务器:
<JBOSS_HOME>\bin\domain.bat (Windows) <JBOSS_HOME>/bin/domain.sh (Unix / Linux)
这种开启服务器的方式有个缺点,当你的命令窗口关闭后,服务自动down了
让服务器开启后在后台运行:
进入到bin目录下,输入
nohup ./standalone.sh &
这样服务器就会在后台运行,即使关闭命令窗口,服务器依然运行
关闭
<JBOSS_HOME>/bin/jboss-cli.sh --connect --command=:shutdown //jboss7.1.x <JBOSS_HOME>/bin/jboss-cli.bat --connect --command=:shutdown //jboss7.1.x
附上两个脚本
run.sh
nohup sh /usr/local/jboss-as-7.1.1.Final/bin/standalone.sh &> /usr/local/jboss-as-7.1.1.Final/standalone/log/nohup.out 2>&1&
kill.sh
pids=`ps -ef|grep java|grep jboss |awk '{printf $2" "}'`
echo "will kill process ids:$pids"
kill -9 $pids
echo 'kill successed'
6.修改配置
因为默认jboss只允许127.0.0.1访问,
修改访问的ip和端口
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}" /> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:127.0.0.1}" /> </interface> <interface name="unsecure"> <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}" /> </interface> <interface name="any"> <any-ipv4-address /> </interface>
</interfaces>
在上面加入红色那一段后,然后修改下面的部分
<!-- <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> --> <socket-binding-group name="standard-sockets" default-interface="any" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}" /> <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}" /> <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}" /> <socket-binding name="ajp" port="8009" />
<socket-binding name="http" port="8080" /><!-- 此处修改8081端口 -->
<socket-binding name="https" port="8443" /> <socket-binding name="osgi-http" interface="management" port="8090" /> <socket-binding name="remoting" port="4447" /> <socket-binding name="txn-recovery-environment" port="4712" /> <socket-binding name="txn-status-manager" port="4713" /> <outbound-socket-binding name="mail-smtp"> <remote-destination host="localhost" port="25" /> </outbound-socket-binding> </socket-binding-group>
也可以采用下面这种方法,这是指定一个ip,只有这一个ip能进行访问
<interface name="public"> <inet-address value="${jboss.bind.address:192.168.0.120}" /> </interface>
也可以修改此处的ip,修改此处的ip,下面部分就不需要修改,如果是在采用的是在此处修改ip的方法,在启动jboss之前,本机必须有网卡上配置该ip,否则在jboss启动之后,再配置ip也不能进行访问,在启动的时候会抛异常,不存在该ip
MSC00001: Failed to start service jboss.network.public: org.jboss.msc.service.StartException in service jboss.network.public: JBAS015810: failed to resolve interface public
at org.jboss.as.server.services.net.NetworkInterfaceService.start(NetworkInterfaceService.java:97) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_09]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_09]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_09]
修改访问端口,在<JBOSS_HOME> /standalone/configuration/standalone.xml文件中
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:100}
默认是0,端口是根据设置的基准值+偏移量得到的,JBoss默认的访问的端口是8080,默认的偏移量是0,所以访问的端口是8080,
修改红色部分,修改偏移量,这样就可以得到新的访问端口,在浏览器访问http://192.168.0.120:8180