CommandBox uses JBoss Undertow to power it's lightweight servlet containers. Undertow also powers JBoss Wildfly and has a lot of configurable options, not all of which have first-class CommandBox settings. These low-level settings come in two different categories:
- Undertow Options - Settings that apply to the servlet and web server aspects of Undertow
- XNIO Options - Part of the underlying XNIO library which powers all low-level I/O in undertow
Undertow has its own set of options which can be found here:
{% embed url="http://undertow.io/javadoc/2.0.x/io/undertow/UndertowOptions.html" %}
To set an XNIO option that CommandBox doesn't already expose with a first-class setting, you can set them into your server.json
like so:
server set runwar.undertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL=true
You can also set global XNIO objects that will apply to all servers. Global options will be appended to server-level options.
config set server.defaults.runwar.undertowOptions.WORKER_NAME=myWorker
XNIO (which is a refined version of NIO (Non-blocking I/O) has its own set of options that apply to the low level network transport functions it provides. You can find the full set of XNIO options here:
{% embed url="https://javadoc.io/doc/org.jboss.xnio/xnio-api/latest/org/xnio/Options.html" %}
To set an XNIO option that CommandBox doesn't already expose with a first-class setting, you can set them into your server.json
like so:
server set runwar.XNIOOptions.WORKER_NAME=myWorker
server set runwar.XNIOOptions.SSL_ENABLED_PROTOCOLS=TLSv1.3,TLSv1.2
You can also set global XNIO objects that will apply to all servers. Global options will be appended to server-level options.
config set server.defaults.runwar.XNIOOptions.WORKER_NAME=myWorker
config set server.defaults.runwar.XNIOOptions.SSL_ENABLED_PROTOCOLS=TLSv1.3,TLSv1.2