我见过太多人在JBoss上栽跟头,装配置其实多数问题都出在安装配置这一步。装配置别急着跑demo,装配置先把基础打牢。装配置
下载与解压
去官网捞个稳定版,装配置别追新。装配置我一般选Java EE 7 Full Profile那个包,装配置虽然大点,装配置但省得后面缺东少西。装配置下载完直接解压到/opt/jboss,装配置路径别带中文和空格,装配置这货对路径很敏感。装配置解压完你会看到bin、装配置standalone、装配置modules这些目录,装配置看一眼就行,别乱动。
环境变量那点事
编辑/etc/profile,加上JAVA_HOME指向你的JDK,再把JBOSS_HOME指到刚才的解压目录。别忘了把$JBOSS_HOME/bin加进PATH。写完source /etc/profile让它生效。这里有个坑——如果你机器上装了多个JDK版本,一定要确认JAVA_HOME指向的是8或11,JBoss对JDK版本挺挑食的。
启动:没你想的那么难
进到bin目录,直接跑./standalone.sh。看到Started字样就说明起来了。默认端口8080,浏览器访问http://localhost:8080应该能看到个空页面——对,就是啥都没有,这正常。别慌,控制台日志才是你该关注的地方。
第一次启动会给你生成standalone/configuration/standalone.xml,这就是主配置文件。我习惯先备份一份,改坏了能回滚。这文件挺长,但你只需要关注几个关键节点。
改端口和管理账号
默认8080端口太容易撞车。在standalone.xml里搜socket-binding-group,把http那行的port改成8081或者你想要的。改完重启才生效,别偷懒。
管理控制台默认是锁着的,你得先建个用户。运行bin/add-user.sh,选Management User,设个强密码——别用123456这种,我见过有人因为弱密码被黑到哭。建完用户就能访问http://localhost:9990了,端口号取决于你配置文件里的management绑定。
部署应用的正确姿势
最简单的方式是把war包扔进standalone/deployments目录。JBoss会自己检测并部署。但注意,你扔进去的文件得带.deploy标记才会被扫描——实际上它支持自动扫描,扔个干净的war就行。部署成功后目录里会生成个.deployed空文件,看到这个就稳了。
如果部署失败,同目录下会生成.failed文件。这时候别瞎猜,去standalone/log/server.log里翻具体报错。90%的情况是依赖缺失或者版本冲突。
内存和性能调优
默认堆内存只有64MB,跑个小demo都卡。改bin/standalone.conf里的JAVA_OPTS,把-Xms和-Xmx调大。我一般设成物理内存的一半,比如8G机器就设4G。但别贪心,留点给系统和其他进程。
还有个容易忽略的地方——standalone.xml里的io-threads和task-max-threads。默认值偏保守,高并发场景下得手动调。我碰过一台机器,线程数翻倍后吞吐量直接涨了三倍。
踩坑记录
最后说个真实案例。上个月同事部署个Spring Boot应用,JBoss一直报ClassNotFound。查了半天,发现是modules目录里有旧版本的依赖包,和应用的jar冲突了。解决办法很简单——在standalone.xml里加<module-option name="org.jboss.as.web" value="..."/>排除掉旧模块,或者把冲突的jar从modules目录挪走。这种问题日志里不会写得很明白,你得学会看类加载器的加载路径。
JBoss配置这东西,说白了就是多试多看日志。配置文件改坏了就回滚,服务起不来就看日志,别怕折腾。等你熟悉了那几个核心文件,这工具其实挺顺手。