$JBOSS_HOME/bin/standalone.conf
JAVA_OPTS="-XX:MaxPermSize=256m -Xms64m -Xmx512m"
JDK 8
JAVA_OPTS="-XX:MaxMetaspaceSize=256m -Xms64m -Xmx512m"
./standalone.sh -c standalone-full.xml
...
...
[...]
<extension module="org.jboss.as.transactions"/>
<extension module="org.jboss.as.web" />
<extension module="org.jboss.as.webservices" />
<extension module="org.jboss.as.weld"/>
<path name="log.dir" path="/home/wildfly/logs" />
<file relative-to="log.dir" path="server.log"/>
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
Sobreescribir variables:
$ ./standalone.sh -Djboss.bind.address=192.168.1.100
<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:9993}"/>
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
En el fichero de configuración:
<property name="x" value="/opt/db/common"/>
Por línea de comandos, parámetro -D
./standalone.sh -Dpropiedad=true
Con mucho cuidado...
Instalación del driver MySQL como módulo
Crear directorio del módulo
JBOSS_HOME/modules/system/layers/base/com/mysql/driver/main
Crear el descriptor module.xml en la carpeta del módulo
<resource-root path="mysql-connector-java-5.1.33.jar"/>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
4. Añadir el driver al fichero standalone.xml subsistema datasources
<driver name="mysql" module="com.mysql.driver"/>
<driver-class>com.mysql.jdbc.Driver</driver-class>
Alternativa: Copiar el driver a la carpeta deployments. WildFly le asignará un nombre en el arranque del servidor.
<?xml version="1.0" encoding="UTF-8"?>
jdbc:mysql://localhost:3306/experto
com.mysql.jdbc.Driver
mysql-connector-java-5.1.31-bin.jar_com.mysql.jdbc.Driver_5_1
root
expertojavajs
false
false
false
Tipo aplicación | Ubicación |
---|---|
Web App (.war) | WEB-INF |
EJB (.jar) | META-INF |
Enterprise (.ear) | META-INF (fichero principal) |
Encriptar la password mediante librería PicketBox
$ cd /usr/local/wildfly-8.2.1.Final/modules/system/layers/base/org/picketbox/main
$ java -classpath picketbox-4.0.21.Final.jar org.picketbox.datasource.security.SecureIdentityLoginModule expertojavajs
Encoded password: -46cea3eadea6ff81c9c59e773c1cfb95
Definir security-domain asociado a las credenciales en standalone.xml
<module-option name="username" value="root"/>
<module-option name="password" value="-46cea3eadea6ff81c9c59e773c1cfb95"/>
<module-option name="managedConnectionFactoryName"
value="jboss.jca:service=LocalTxCM,name=portalDS"/>
3. Asociar el security-domain al datasource
ds-encrypted
Implementan lógica de negocio en aplicaciones Java EE
El servidor de aplicaciones maximiza el rendimiento de estos componentes.
Tipos:
SFSB y SLSB instanciables internamente desde la aplicación o externamente mediante Remoting (RMI)
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
Mediante CLI, crear un pool de hasta 5 objetos
[standalone@localhost:9990 /] /subsystem=ejb3/strict-max-bean-instance-pool=nuevo-pool:add(max-pool-size=5,timeout-unit=SECONDS,timeout=30)
El resultado:
....
<strict-max-pool name="nuevo-pool" max-pool-size="5" instance-acquisition-timeout="30" instance-acquisition-timeout-unit="SECONDS"/>
....
@Stateless
@Pool (value="nuevo-pool")
public class Ranking implements RankingLocal
...
WildFly carga las clases que necesita una aplicación con la siguiente prioridad:
Dependencies: deployment.WebExample1.war
El mejor rendimiento de un servidor de aplicaciones se consigue ajustando su configuración a los recursos disponibles y la carga de trabajo que va a soportar
<buffer-cache name="default" buffer-size="1024" buffers-per-region="1024" max-regions="10"/>
<http-listener name="default" socket-binding="http"/>
<location name="/" handler="welcome-content" />
<filter-ref name="gzipFilter" predicate="path-suffix['.css'] or path-suffix['.js']" />
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<jsp-config/>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true"/>
<esponse-header name="server-header" header-name="Server" header-value="Wildfly 8"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow 1"/>
<gzip name="gzipFilter"/>