I just announced the new Spring Boot 2 material, coming in REST With Spring:

>> CHECK OUT THE COURSE

1. Introduction

In this tutorial, we’ll have a look at how to start and stop a JBoss application server.

First, we’ll explore the operating modes of this server. Further, we’ll discuss how to start and stop the server in each of these operating modes.

JBoss is an open source application server developed by RedHat and is now known as WildFly. We can download it from the official WildFly website.

We can operate this server in two different modes. However, the key difference between these modes lies in the management of the server.

2. JBoss Standalone Server

In this mode, each standalone server instance is an independent process. Consequently, we have to manage each of these servers individually.

In other words, we can launch multiple instances of the standalone servers in case multi-server configuration is desired.

However, we’ll need to deploy the application on each server individually.

2.1. Preferences and Configurations

The standalone startup script i.e. standalone.sh for OSX/Linux and standalone.bat for Windows, utilizes:

  • standalone.conf/standalone.conf.bat: defines the JVM preferences for the standalone server instance
  • standalone.xml: defines the default configurations for the server; we can find it under $JBOSS_HOME/standalone/configuration.

JBoss also provides some alternate configurations in the same directory:

  • standalone-ee8.xml: same as standalone.xml, but with EE8 technologies enabled
  • standalone-ha.xml: Java Enterprise Edition 7 web profile certified configuration with high availability
  • standalone-full.xml: Java Enterprise Edition 7 full profile certified configuration including all the required EE 7 technologies
  • standalone-full-ha.xml: Java Enterprise Edition 7 full profile certified configuration with high availability

2.2. Starting the Server

Let’s open a terminal in OSX/Linux or a command prompt in Windows and navigate to the $JBOSS_HOME/bin directory.

Further, we’ll start the standalone server with default configuration by running:

standalone.sh

in OSX/Linux or in Windows:

standalone.bat

Similarly, we can start the standalone server with an alternate configuration, say with EE8 capabilities, by executing:

standalone.sh --server-config=standalone-ee8.xml

in OSX/Linux or in Windows:

standalone.bat --server-config=standalone-ee8.xml

Furthermore, to check if the startup is successful, we can open up a browser and navigate to http://localhost:8080/. It’ll show the default WildFly welcome page.

2.3. Stopping the Server

To stop the server we can simply press “CTRL+C”.

Additionally, jboss-cli could be utilized for issuing commands to the running instance of the server. For instance, we can use it to shut down the server.

Let’s open a new terminal or a command prompt and run:

./jboss-cli.sh --connect command:shutdown

in OSX/Linux and in Windows:

./jboss-cli.bat --connect command:shutdown

3. Managed Domain Servers

In this mode, we can manage multiple instances of the server from a single control point. These servers are logically members of a single domain. Here, a single Domain Controller process acts as the central management control point.

By default, JBoss provides few instances of the server. We can find these instances under $JBOSS_HOME/domain/servers directory.

3.1. Preferences and Configurations

The domain startup script i.e. domain.sh for OSX/Linux and domain.bat for Windows utilizes:

  • domain.conf/domain.conf.bat: defines the JVM preferences for the servers under the domain
  • domain.xml: defines the configurations for the domain; we can find it under $JBOSS_HOME/domain/configuration.

Additionally, we can define our custom configuration for operating these servers similar to the alternate configurations of the standalone server.

3.2. Starting the Server

The process of starting the server under a managed domain remains the same as the standalone server. However, instead of standalone.sh/domain.bat, we’ll use domain.sh/domain.bat.

Consequently, this will spin up multiple servers instances under a single domain.

3.3. Stopping the Server

To stop all the servers we can simply press “CTRL+C”. Moreover, we can stop a specific server using jboss-cli.

Let’s open a new terminal or a command prompt and run:

jboss-cli.sh --connect

in OSX/Linux or in Windows:

jboss-cli.bat --connect

Presently, we are connected to the domain controller. Here, we can issue commands to multiple instances of the server. For instance, to view all the servers under this domain:

/host=master:read-children-names(child-type=server-config)

Similarly, to stop a specific instance of the server, we’ll execute:

/host=master/server-config=<server-name>:stop

Accordingly, we can check the status of this server:

/host=master/server-config=<server-name>:read-resource(include-runtime=true)

4. Conclusion

In this short guide, we explored how to start and stop the application server with different configurations.

For further reading, we have an article that describes the process of deploying a war file on the JBoss application server.

I just announced the new Spring Boot 2 material, coming in REST With Spring:

>> CHECK OUT THE LESSONS