以前没玩过 Jboss,上次使用是别人配置好的 Jboss 环境,隐约记得访问端口是8080。今天因项目需要玩了一下 jboss-eap-6.4,本文将记录如何通过jboss的提示信息一步步完成Java 应用的部署过程。
跟 Tomcat 一样,它也是非安装版的,直接上传 jboss-eap-6.4 包到目标服务器,然后在bin 目录下找到启动文件 standalone.sh 执行即可。
访问路径与Tomcat一致,都是http://localhost:8080/,默认绑定本机回环地址。
目标机器防火墙关闭,但是无法远程访问到该路径,说明是 Jboss 自身配置问题。
Jboss 的独立模式配置文件为 standalone.xml 类似 Tomcat 的 server.xml,其路径为:
编辑该文件,修改 bind-address 信息为 0.0.0.0(任意本机IP均可访问),这个知识点跟其他所有的地址绑定一样(所有的回环地址都需要修正,否则无法访问):
重启后远程访问:
这是类似 Tomcat 的小汤猫的页面,这个页面有一行信息说明有配置可以关闭该页面。
访问部署页面http://IP:9990/console/App.html#deployments
提示我们没有添加管理用户,不能使用,并且告诉了我们添加用户的脚本。
执行 bin 目录下 add-user.sh 脚本添加系统用户。
如果是忘记密码,还是执行该脚本,输入待修改密码的账号,就能完成密码的修改了。
再次访问部署路径,自动进的入登录页面:
Tomcat 有针对 URI 设置编码的配置:
这个配置可以保证 Get 请求中文参数不会出现乱码,相同的项目部署到 Jboss 后出现了中文乱码,所以猜测是编码配置问题,搜一下 Jboss 果然有相关的配置。
找到这个博客https://blog.csdn.net/earthhour/article/details/18308939 配置一下就OK了,还是在配置bind-address的地方,在和
标签中间添加如下配置:
JBoss6.4 引用了 Hibernate Validator ,不同操作系统该jar包的要求不一样,CentOS6 是依赖 Hibernate Validator 4.3.3.Final-redhat-1,而 CentOs7 是需要高版本的5.0,一旦版本错误,会导致部署应用并启动时报错。
所以打包的时候根据目标机器的操作系统类型,调整项目中的依赖配置:
org.hibernate
hibernate-validator
5.1.0.Final
如果是 CentOS7 是则使用 5.1,否则使用JBoss子代码的版本即可。
Jboss 支持 websocket 需要额外的配置:
1)EAP_HOME/bin/jboss-cli.sh --connect
2)/subsystem=web/connector=http/:write-attribute(name=protocol,value=org.apache.coyote.http11.Http11NioProtocol)
3)重启 jboss
完整的参考链接
nohup sh standalone.sh 1>/dev/null 2>/dev/null &
以后台方式启动,并忽略输出日志,可以保证项目日志不会重复输出。通常情况下,我们项目使用了 log4 j日志,这些日志会输出到 Jboss 的 server.log 文件中,为了避免重复输出,可以使用上述命令不输出到 Jboss 的系统日志中。
项目访问路径是http://IP:8080/appName,默认端口是 8080,后面跟应用名称,跟Tomcat完全一样。
工具都是相通的,Jboss 的使用也挺方便的,对于部署操作来,通过图形界面化,省了不少命令敲击和文件上传的时间。