- WildFly Cookbook
- Luigi Fugaro
- 667字
- 2025-04-04 20:52:33
Managing applications using the deployments folder
After configuring and customizing the WildFly standalone, it's time to deploy our first application. WildFly provides a lot of methods to deploy applications, one of them being via the deployment scanner (well known to those of you who come from the JBoss AS version). Basically, all you need to do is to copy your artifact into the deployments
folder of your standalone instance.
In a production environment, you had better turn off the deployment scanner to avoid replacing a deployment accidentally—you would be in very big trouble. Do use the proper "deploy" operation using either the CLI or the Admin Console. We will see both in this chapter.
Getting ready
In this recipe, we will need a Java web application. If you want, you can use one of my projects from my GitHub account, at the following address: https://github.com/foogaro/wildfly-cookbook.git.
You can git-clone
the repository or just download it as a ZIP archive. Either way, create a folder named github
into the WFC
folder, and place the source into it.
Using the git-clone
command, do as follows:
$ cd ~/WFC $ mkdir github $ cd github $ git clone https://github.com/foogaro/wildfly-cookbook.git
Once git
has done with cloning the repo, you can find a project called example
. To compile the project, do as follows:
$ cd ~/WFC/github/wildfly-cookbook/example $ mvn -e clean package
The preceding commands compile the project and generate the web application artifact into a folder named target
. There you can find the application example.awar
, ready to be deployed.
Note
There is also the official WildFly quickstarts repository, which has plenty of precious resources to look at, and it is also available for contribution at the following address: https://github.com/wildfly/quickstart.
Now, assume that we are going to use the default standalone
folder as the base configuration path of our instance. To see everything in action, it's better to first run WildFly and then start managing the application itself using the deployments
folder.
How to do it…
- First, let's start up WildFly:
$ cd $WILDFLY_HOME $ ./bin/standalone.sh ... WFLYSRV0025: WildFly Full 9.0.0.Beta2 (WildFly Core 1.0.0.Beta2) started in 3087ms - Started 202 of 379 services (210 services are lazy, passive or on-demand)
- Now keeping your terminal windows visible, open your favorite file manager tool, and copy
example.war
into thedeployments
folder.Alternatively, you can copy the web application using a new terminal, using the following command:
$ cp ~/WFC/github/wildfly-cookbook/example/target/example.war $WILDFLY_HOME/standalone/deployments
- A few seconds later (the timer interval is set for every 5 seconds, so you may wait a few milliseconds or 5 seconds), we'll get the following output:
22:51:31,396 INFO [org.jboss.as.repository] (DeploymentScanner-threads - 1) WFLYDR0001: Content added at location /home/luigi/WFC/wildfly/standalone/data/content/21/7dd6250d5bc4afcabdffb0b25c99db92239b5a/content 22:51:31,447 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0027: Starting deployment of "example.war" (runtime-name: "example.war") 22:51:31,986 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) WFLYUT0021: Registered web context: /example 22:51:32,046 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0010: Deployed "example.war" (runtime-name : "example.war")
And you should also get a new file in the
deployments
folder namedexample.war.deployed
. This is a marker saying that the application has been successfully deployed. In case of an error, any operation would have been rolled back and a new file namedexample.war.failed
would have been created. - Now, can you guess how to undeploy it? Yes... rename the marker file extension with
.undeploy
as follows:22:55:17,702 INFO [org.wildfly.extension.undertow] (MSC service thread 1-7) WFLYUT0022: Unregistered web context: /example 22:55:17,736 INFO [org.hibernate.validator.internal.util.Version] (MSC service thread 1-4) HV000001: Hibernate Validator 5.1.3.Final 22:55:17,801 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) WFLYSRV0028: Stopped deployment example.war (runtime-name: example.war) in 109ms 22:55:17,817 INFO [org.jboss.as.repository] (DeploymentScanner-threads - 1) WFLYDR0002: Content removed from location /home/luigi/WFC/wildfly/standalone/data/content/21/7dd6250d5bc4afcabdffb0b25c99db92239b5a/content 22:55:17,817 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0009: Undeployed "example.war" (runtime-name: "example.war")
And in the
deployments
folder, a new file namedexample.war.undeployed
has been created. How do we redeploy it now? Delete the two marker files, or create a new one namedexample.war.dodeploy
.
How it works…
To recap what we've learned so far, marker files always have the same name as the application plus the suffix. The following table summarizes all the available markers: