JBoss EAP 01: standalone, domains, and management interfaces
A colleague changed configuration, but requests still show the old behavior. First confirm the same instance: one host can run several JVMs, and the management endpoint may differ from the server receiving HTTP traffic. Start by mapping names to actual targets.
Standalone is a management mode, not a Boot JAR
An EAP standalone instance manages one application server, commonly using configuration under standalone/configuration. It can still host WARs and enterprise components. A standalone Boot JAR describes application packaging and startup at a different layer.
# For your own isolated training installation only.
# Run from the EAP installation directory; not executed for this tutorial.
./bin/standalone.sh -c standalone.xmlThis illustrates a training installation, not a universal corporate startup command. RPM services, containers, or service managers may own launch arguments and JDK selection. Find the actual configuration from that entry point. Use managed interfaces for live changes rather than editing XML concurrently with a running server.
Domains centralize management; servers execute applications
Domain controller / domain model
→ host controller
→ server A ─┐
→ server B ─┴→ server-group → profile + socket-binding group
Application requests execute on the server JVMs.domain.xml holds shared configuration; host.xml describes host-level roles and servers. Server groups associate servers with profiles, deployments, and network configuration. An EAP profile groups subsystem settings and is unrelated to a Spring profile. Domain management alone does not establish load balancing or session replication.
Separate management from application HTTP
# Example local management address; use the actual authorized listener.
./bin/jboss-cli.sh --connect --controller=127.0.0.1:9990
# In the connected CLI, for a standalone training server:
version
:read-children-names(child-type=subsystem)
deployment info9990 is an example address; installations may use different ports, TLS, or proxies. Check version information and deployment state. Permission failures, missing resources, and successful empty results are different. Domain profile configuration and per-server runtime use different addresses; a standalone root address cannot simply stand in for them.
Exercise: inspect declarations without EAP
python3 inventory.py fixtures/standalone.synthetic.xmlRun this inside the kit. Find OrdersDS, AuditXA, mq-jakarta, and orders.war. The HTTP port remains ${jboss.http.port:8080}: the tool does not resolve properties, offsets, or listener state. This exercises XML reading, not an EAP-valid configuration or successful startup.
Check yourself, then compare
Does a default-looking 8080 declaration establish the listening port? No: configuration selection, expressions, offsets, and runtime remain unverified. Record the mode, host, server, group, and profile in the workbook. Distinguish not applicable from unknown.
Download the EAP offline kit: inventory, exercises, workbookNext: 02: WAR/EAR and deployment