wildfly填坑记

前言

部署drool的workbench,之前版本都还有tomcat的war包,结果现在就只有wildfly的war包了。没有用过,填下坑吧。

下载

官网下载最新的版本是20。官网地址:https://docs.wildfly.org/。然后操作和tomcat差不多,解压到对应的位置就可以了。

部署

部署的目录有些不同,它下面有三个目录可用:

  • standalone目录下存放的应用将单独占用进程,可单独启动和关闭,之间没有关联性。旗下有许多xml文件可供启动时选择。
  • domain目录下的应用之间有关联性,managing multiple servers from a single control point。
  • modules目录,jboss采用module加载驱动。

目前我只用到了standalone,别的目录有机会再尝试吧。发布war包,将war包考到standalone/deployments下面就好了。这个时候,执行bin目录下面的standalone.sh,不用带参数。然后,我遇到了两个问题,我们一个一个来解决。

java.lang.OutOfMemoryError: GC overhead limit exceeded

这东西吧,很明显,内存溢出。我没有配置任何jvm参数,默认的参数如下:

 JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

这个参数可以在bin\standalone.conf下面进行更改,进去以后找JAVA_OPTS就可以找到了。我改成下面这样了:

-Xms512m -Xmx2048m -XX:MetaspaceSize=256M

其它的保持不变,不是删了哈。

无法远程访问

由于这个 环境我是跑在虚拟机上的,启动后发现wildfly的哪个端口都访问不通,是因为默认只能通过127.0.0.1进行访问。找到standalone\configuration\standalone.xml文件,修改如下三行即可:

……
${jboss.bind.address:0.0.0.0}
……

……

……

找到它们,改成上面的样子即可。原来它们都是127.0.0.1。再启动,8080端口能进去了,但是并不是我的应用。在后面加上你的war包的名字就可以访问了。

用户管理

访问是访问进去了,但是进去的是个登录页面。用户名密码是多少呢?这需要我们手动添加用户,默认是无用户的,并且无法进入Administration Console。添加用户也很简单,执行bin下的add-user.sh脚本,根据向导添加一个Management User即可。group那里加入admin即可,目前没有遇见问题。

守护进程

上面的用户管理,尤其是应用的用户管理,和具体的应用关联很大,这里只是一些通用的操作。这里的启动是前台启动,配置守护进程就简单多了,supervisor的配置文件如下:

[program:wildfly-drools]
command=/opt/wildfly-drools/bin/standalone.sh
directory=/opt/wildfly-drools/
numprocs=1
autorestart=true
user=root
priority=2
stderr_logflile=/opt/supervisor/log/wildfly.log

补充说明

  • 默认的日志路径是:standalone/log/server.log

你可能感兴趣的:(wildfly填坑记)