Wildfly
Op het moment gebruik ik versie 30.0.1.Final van Wildfly.
Installatie als daemon
Kopieer het init.d script uit Wildfly:
cp /opt/wildfly/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/wildfly
Kopieer de defaults:
cp /opt/wildfly/docs/contrib/scripts/init.d/wildfly.conf /etc/default/wildfly
Pas /etc/default/wildfly
aan naar je eigen wensen, vooral de JDK is natuurlijk van belang.
Maak /var/log/wildfly/
aan en maak de Wildfly user en groep daar eigenaar.
Zorg dat wildfly ook echt als service kan draaien:
update-rc.d wildfly defaults update-rc.d wildfly enable
Start tenslotte Wildfly service wildfly start
Poorten veranderen
In mijn geval was poort 8080 al bezet. Wildfly heeft een file waar de standalone configuratie aangepast kan worden: $WILDFLY_HOME/standalone/configuration/standalone.xml
Zoek naar de string jboss.socket.binding.port-offset:0
en maak van die 0 een ander getal, alle poorten zullen met dat getal verhoogd worden.
Logging
Logging gaat standaard naar de algemene log. Dit is vrij eenvoudig om te zetten. Als er een bestand met (o.a.) de naam jboss-log4j.xml dan zal Wildfly dit bestand gebruiken.
Als er een fileappender wordt gebruikt, wil je hier geen hardcoded path in hebben. Dit kan door in Wildfly een system property aan te maken met b.v. de naam "LOGDIR" en de waarde "/var/log/wildfly". In je appender gebruik je dan:
<param name="file" value="${LOGDIR}/mijnlog.log">;
Nadeel van deze manier is dat als je je jboss-log4j.xml aanpast, Wildfly opnieuw opgestart moet worden voordat je het resultaat ziet.
Zie: JBoss documentatie.
Wildfly, JSF en Apache Shiro
Uitloggen
Uitloggen gaf een vreselijke stacktrace op het scherm, Shiro logt uit door de sessie te wissen, maar JSF heeft dat liever niet.
Dit heb ik als volgt opgelost:
public String uitloggen() { currentUser.logout(); return "/index.xhtml?faces-redirect=true"; }
cli
Opstarten met bin/jboss-cli.sh --connect
Opvragen alle war’s:
deployment-info
Undeployen van een war:
undeploy <naam-van-war>