Download Wildfly 11 For Windows

Posted on

Our recommendation is that you run WildFly on the most recent long-term support JDK release, i.e. On JDK 11 for WildFly 21. While we do do some testing of WildFly on JDK 12 and 13, we do considerably more testing of WildFly itself on the LTS JDKs, and we make no attempt to ensure the projects producing the various libraries we integrate are. NOTE: For the Ubisecure CustomerID service startup to be successful when the server is restarted, the WildFly service startup needs to be dependent on the data storage services (PostgreSQL and the used LDAP(s)). If the WildFly service starts up before the data storage services then the startup won't succeed. If PostgreSQL is running on the same server as WildFly, create a startup dependency to. I'm trying to enable SSL on my wildfly 11 application server, i bought an ssl certificate in godaddy and downloaded a zip file with this inside: 1. 22c8728db3996008.crt 2. 22c8728db3996008.pem 3.

Getting Started with WildFly 10

WildFly 10 is the latest release in a series of JBoss open-source application server offerings. WildFly 10 is an exceptionally fast, lightweight and powerful implementation of the Java Enterprise Edition 7 Platform specifications. The state-of-the-art architecture built on the Modular Service Container enables services on-demand when your application requires them. The table below lists the Java Enterprise Edition 7 technologies and the technologies available in WildFly 10 server configuration profiles.

Java EE 7 Platform Technology

Java EE 7
Full Profile

Java EE 7
Web Profile

WildFly 10
Full Profile

WildFly 10
Web Profile

JSR-356: Java API for Web Socket

X

X

X

X

JSR-353: Java API for JSON Processing

X

X

X

X

JSR-340: Java Servlet 3.1

X

X

X

X

JSR-344: JavaServer Faces 2.2

X

X

X

X

JSR-341: Expression Language 3.0

X

X

X

X

JSR-245: JavaServer Pages 2.3

X

X

X

X

JSR-52: Standard Tag Library for JavaServer Pages (JSTL) 1.2

X

X

X

X

JSR-352: Batch Applications for the Java Platform 1.0

X

--

X

--

JSR-236: Concurrency Utilities for Java EE 1.0

X

X

X

X

JSR-346: Contexts and Dependency Injection for Java 1.1

X

X

X

X

JSR-330: Dependency Injection for Java 1.0

X

X

X

X

JSR-349: Bean Validation 1.1

X

X

X

X

JSR-345: Enterprise JavaBeans 3.2

X
CMP 2.0
Optional

X
(Lite)

X
CMP 2.0
Not Available

X
(Lite)

JSR-318: Interceptors 1.2

X

X

X

X

JSR-322: Java EE Connector Architecture 1.7

X

--

X

X

JSR-338: Java Persistence 2.1

X

X

X

X

JSR-250: Common Annotations for the Java Platform 1.2

X

X

X

X

JSR-343: Java Message Service API 2.0

X

--

X

--

JSR-907: Java Transaction API 1.2

X

X

X

X

JSR-919: JavaMail 1.5

X

--

X

X

JSR-339: Java API for RESTFul Web Services 2.0

X

X

X

X

JSR-109: Implementing Enterprise Web Services 1.3

X

--

X

--

JSR-224: Java API for XML-Based Web Services 2.2

X

X

X

X

JSR-181: Web Services Metadata for the Java Platform

X

--

X

--

JSR-101: Java API for XML-Based RPC 1.1

Optional

--

--

--

JSR-67: Java APIs for XML Messaging 1.3

X

--

X

--

JSR-93: Java API for XML Registries

Optional

--

--

--

JSR-196: Java Authentication Service Provider Interface for Containers 1.1

X

--

X

--

JSR-115: Java Authorization Contract for Containers 1.5

X

--

X

--

JSR-88: Java EE Application Deployment 1.2

Optional

--

--

--

JSR-77: J2EE Management 1.1

X

X

JSR-45: Debugging Support for Other Languages 1.0

X

X

X

X

The WildFly Web Profile doesn't include JMS (provided by HornetQ) by default. If you want to use messaging, make sure you start the server using the 'Full Profile' configuration.

This document provides a quick overview on how to download and get started using WildFly 10 for your application development. For in-depth content on administrative features, refer to the WildFly 10 Admin Guide.

Download

WildFly 10 distributions can be obtained from:

WildFly 10 provides a single distribution available in zip or tar file formats.

  • wildfly-10.0.0.Final.zip

  • wildfly-10.0.0.Final.tar.gz

Requirements

  • Java SE 8 or later (we recommend that you use the latest update available)

Installation

Simply extract your chosen download to the directory of your choice. You can install WildFly 10 on any operating system that supports the zip or tar formats. Refer to the Release Notes for additional information related to the release.

WildFly - A Quick Tour

Now that you’ve downloaded WildFly 10, the next thing to discuss is the layout of the distribution and explore the server directory structure, key configuration files, log files, user deployments and so on. It’s worth familiarizing yourself with the layout so that you’ll be able to find your way around when it comes to deploying your own applications.

WildFly 10 Directory Structure

DIRECTORY

DESCRIPTION

appclient

Configuration files, deployment content, and writable areas used by the application client container run from this installation.

bin

Start up scripts, start up configuration files and various command line utilities like Vault, add-user and Java diagnostic report
available for Unix and Windows environments

bin/client

Contains a client jar for use by non-maven based clients.

docs/schema

XML schema definition files

docs/examples/configs

Example configuration files representing specific use cases

domain

Configuration files, deployment content, and writable areas used by the domain mode processes run from this installation.

modules

WildFly 10 is based on a modular classloading architecture. The various modules used in the server are stored here.

standalone

Configuration files, deployment content, and writable areas used by the single standalone server run from this installation.

welcome-content

Default Welcome Page content

Standalone Directory Structure

In 'standalone' mode each WildFly 10 server instance is an independent process (similar to previous JBoss AS versions; e.g., 3, 4, 5, or 6). The configuration files, deployment content and writable areas used by the single standalone server run from a WildFly installation are found in the following subdirectories under the top level 'standalone' directory:

DIRECTORY

DESCRIPTION

configuration

Configuration files for the standalone server that runs off of this installation. All configuration information for the running server is located here and is the single place for configuration modifications for the standalone server.

data

Persistent information written by the server to survive a restart of the server

deployments

End user deployment content can be placed in this directory for automatic detection and deployment of that content into the server's runtime.
NOTE: The server's management API is recommended for installing deployment content. File system based deployment scanning capabilities remain for developer convenience.

lib/ext

Location for installed library jars referenced by applications using the Extension-List mechanism

log

standalone server log files

tmp

location for temporary files written by the server

tmp/auth

Special location used to exchange authentication tokens with local clients so they can confirm that they are local to the running AS process.

Domain Directory Structure

A key feature of WildFly 10 is the managing multiple servers from a single control point. A collection of multiple servers are referred to as a 'domain'. Domains can span multiple physical (or virtual) machines with all WildFly instances on a given host under the control of a Host Controller process. The Host Controllers interact with the Domain Controller to control the lifecycle of the WildFly instances running on that host and to assist the Domain Controller in managing them. The configuration files, deployment content and writeable areas used by domain mode processes run from a WildFly installation are found in the following subdirectories under the top level 'domain' directory:

DIRECTORY

DESCRIPTION

configuration

Configuration files for the domain and for the Host Controller and any servers running off of this installation. All configuration information for the servers managed wtihin the domain is located here and is the single place for configuration information.

content

an internal working area for the Host Controller that controls this installation. This is where it internally stores deployment content. This directory is not meant to be manipulated by end users.
Note that 'domain' mode does not support deploying content based on scanning a file system.

lib/ext

Location for installed library jars referenced by applications using the Extension-List mechanism

log

Location where the Host Controller process writes its logs. The Process Controller, a small lightweight process that actually spawns the other Host Controller process and any Application Server processes also writes a log here.

servers

Writable area used by each Application Server instance that runs from this installation. Each Application Server instance will have its own subdirectory, created when the server is first started. In each server's subdirectory there will be the following subdirectories:
data -- information written by the server that needs to survive a restart of the server
log -- the server's log files
tmp -- location for temporary files written by the server

tmp

location for temporary files written by the server

tmp/auth

Special location used to exchange authentication tokens with local clients so they can confirm that they are local to the running AS process.

WildFly 10 Configurations

Standalone Server Configurations
  • standalone.xml (default)

    • Java Enterprise Edition 7 web profile certified configuration with the required technologies plus those noted in the table above.

  • 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

ForDownload Wildfly 11 For Windows
Domain Server Configurations
  • domain.xml

    • Java Enterprise Edition 7 full and web profiles available with or without high availability

Important to note is that the domain and standalone modes determine how the servers are managed not what capabilities they provide.

Starting WildFly 10

To start WildFly 10 using the default web profile configuration in 'standalone' mode, change directory to $JBOSS_HOME/bin.

To start the default web profile configuration using domain management capabilities,

Starting WildFly 10 with an Alternate Configuration

If you choose to start your server with one of the other provided configurations, they can be accessed by passing the --server-config argument with the server-config file to be used.

To use the full profile with clustering capabilities, use the following syntax from $JBOSS_HOME/bin:

Similarly to start an alternate configuration in domain mode:

Alternatively, you can create your own selecting the additional subsystems you want to add, remove, or modify.

Test Your Installation

After executing one of the above commands, you should see output similar to what's shown below.

As with previous WildFly releases, you can point your browser to http://localhost:8080 (if using the default configured http port) which brings you to the Welcome Screen:

From here you can access links to the WildFly community documentation set, stay up-to-date on the latest project information, have a discussion in the user forum and access the enhanced web-based Administration Console. Or, if you uncover a defect while using WildFly, report an issue to inform us (attached patches will be reviewed). This landing page is recommended for convenient access to information about WildFly 10 but can easily be replaced with your own if desired.

Managing your WildFly 10

WildFly 10 offers two administrative mechanisms for managing your running instance:

  • web-based Administration Console

  • command-line interface

Authentication

By default WildFly 10 is now distributed with security enabled for the management interfaces, this means that before you connect using the administration console or remotely using the CLI you will need to add a new user, this can be achieved simply by using the add-user.sh script in the bin folder.

After starting the script you will be guided through the process to add a new user: -

In this case a new user is being added for the purpose of managing the servers so select option a.

You will then be prompted to enter the details of the new user being added: -

It is important to leave the name of the realm as 'ManagementRealm' as this needs to match the name used in the server's configuration, for the remaining fields enter the new username, password and password confirmation.

Provided there are no errors in the values entered you will then be asked to confirm that you want to add the user, the user will be written to the properties files used for authentication and a confirmation message will be displayed.

The modified time of the properties files are inspected at the time of authentication and the files reloaded if they have changed, for this reason you do not need to re-start the server after adding a new user.

Administration Console

To access the web-based Administration Console, simply follow the link from the Welcome Screen. To directly access the Management Console, point your browser at:

NOTE: port 9990 is the default port configured.

If you modify the management-http socket binding in your running configuration: adjust the above command accordingly. If such modifications are made, then the link from the Welcome Screen will also be inaccessible.

If you have not yet added at least one management user an error page will be displayed asking you to add a new user, after a user has been added you can click on the 'Try Again' link at the bottom of the error page to try connecting to the administration console again.

Command-Line Interface

If you prefer to manage your server from the command line (or batching), the jboss-cli.sh script provides the same capabilities available via the web-based UI. This script is accessed from $JBOSS_HOME/bin directory; e.g.,

Notice if no host or port information provided, it will default to localhost:9990.

When running locally to the WildFly process the CLI will silently authenticate against the server by exchanging tokens on the file system, the purpose of this exchange is to verify that the client does have access to the local file system. If the CLI is connecting to a remote WildFly installation then you will be prompted to enter the username and password of a user already added to the realm.

Once connected you can add, modify, remove resources and deploy or undeploy applications. For a complete list of commands and command syntax, type help once connected.

Modifying the Example DataSource

As with previous JBoss application server releases, a default data source, ExampleDS, is configured using the embedded H2 database for developer convenience. There are two ways to define datasource configurations:

  1. as a module

  2. as a deployment

In the provided configurations, H2 is configured as a module. The module is located in the $JBOSS_HOME/modules/com/h2database/h2 directory. The H2 datasource configuration is shown below.

The datasource subsystem is provided by the IronJacamar project. For a detailed description of the available configuration properties, please consult the project documentation.

  • IronJacamar homepage: http://www.jboss.org/ironjacamar

  • Project Documentation: http://www.jboss.org/ironjacamar/docs

  • Schema description: http://docs.jboss.org/ironjacamar/userguide/1.0/en-US/html/deployment.html#deployingds_descriptor

Configure Logging in WildFly 10

WildFly 10 logging can be configured with the web console or the command line interface. You can get more detail on the Logging Configuration page.

Turn on debugging for a specific category with CLI:

By default the server.log is configured to include all levels in it's log output. In the above example we changed the console to also display debug messages.

Provisioning WildFly with Galleon

As we continue with our quarterly delivery model, a major focus over the next few quarters will be on making WildFly as easy and productive as possible to use on the cloud, particularly on Kubernetes and OpenShift.

An important requirement for the cloud is to be able to reduce the footprint of your server to what you need to run your application, eliminating unneeded runtime memory overhead, cutting down image size and reducing the possibility for security vulnerabilities. So, I’m very excited to announce Tech Preview support for use of the Galleon provisioning tool to allow you to easily provision a slimmed down server tailored toward REST applications. By easily, I mean a simple command that provisions a server that provides the technologies you want, with a correct configuration, and with unneeded libraries not present on disk. Being able to do this is an important piece of foundational technology that we’ll be building upon over the course of 2019, particularly with tooling and best practices aimed at taking advantage of Galleon when creating cloud images.

Galleon provisioning isn’t just useful in cloud; users running on bare metal or virtualized environments can get the same benefits. Easy server slimming has been a goal for as long as I’ve been involved with JBoss AS!

To use Galleon, download and unzip the Galleon tool.

To install the latest final version of WildFly into the directory my-wildfly-server call:

That’s not so interesting as the result is equivalent to unzipping the standard download zip.

WildFly still provides the usual zip / tar.gz. Using Galleon is not required to use WildFly.

The real power comes when using the Galleon layers that WildFly provides to limit your installation to just the technologies you need. For example, if all you want is jaxrs and cdi:

The result is an installation that doesn’t include unnecessary modules, has a correct configuration and has less than a third of the disk footprint of the standard WildFly distribution. And you don’t have to worry about knowing and specifying technologies required by the ones you know you want (e.g. the servlet support that jaxrs needs). Galleon handles that for you.

If you’re ok with a slightly bigger footprint in order to have common WildFly Core management functionality, add the core-server and core-tools layers:

Download Wildfly 11 For Windows

WildFly 16 provides a rich set of layers oriented toward letting optimize your server for running HTTP applications. For further details, see the WildFly Admin Guide and the Galleon documentation.

Please give Galleon provisioning a try and give us feedback! We’d love to hear about your use cases and how Galleon can be improved to meet them. We’ll be doing more articles and blog posts explaining how to take advantage of this technology.

JDK 12

While the GA version of JDK 12 has not been released yet (it is in the Release Candidate phase), we are pleased to report that WildFly 16 should run well on JDK 12 once it is GA. I’d like to especially thank Richard Opalka and Matej Novotny for their efforts in making this happen.

Our goal with WildFly is to have our releases run well for most use cases on the most recent GA JDK version available on the WildFly final release date. If practical we’ll try and run well on release candidates for upcoming JDK versions as well, which we’ve achieved with WildFly 16. By run well, I mean our main testsuite runs with no more than a few failures in areas not expected to be commonly used. (In the JDK 12 case we have no failures.) We want developers who are trying to evaluate what the latest JVM means for their applications to be able to look to WildFly as their development platform. It may not always be possible to attain this goal, but it’s one we take seriously.

While we do want to run well on the most recent JDK, our recommendation is that you run WildFly on the most recent long-term support release, i.e. on JDK 11 for WildFly 16. We do considerably more testing on the LTS JDKs.

WildFly 16 also is heavily tested and runs well on Java 8. We plan to continue to support Java 8 at least through WildFly 18.

Please note that WildFly runs on Java 11 and 12 in classpath mode.

Messaging Improvements

  • MDBs can be configured to belong to multiple delivery groups, with delivery only enabled only when all the delivery groups are active.

  • Users can use standard Java EE 8 resource definitions (annotations or xml) to define JMS resources that connect to a remote Artemis-based broker (including AMQ-7 instances).

  • Users can configure the maximum amount of memory that the embedded messaging broker can use to store messages for its addresses before they are considered 'full' andtheir address-full-policy starts to apply (e.g. to drop messages, block producers, etc.)

Clustering Improvements

  • When WildFly servers behind a mod_cluster load balancer start they will instruct the load balancer to gracefully ramp up their load over the first minute or so of operation, instead of having the balancer send the maximum possible amount of traffic, possibly overwhelming the server.

  • Users running a cluster with HA Singleton deployments or services can connect with the CLI to any cluster member and determine which node is the primary provider of a given deployment or service.

Other Notable Items

  • You can use the CLI to list which modules are visible to a deployment. This is helpful in analyzing classloading issues.

  • In a WildFly managed domain, you can suspend and resume all of the servers managed by a particular Host Controller. Previously suspending or resuming multiple servers was limited to all servers in the domain or those in a particular server group.

  • When using Elytron, HTTP Basic authentication mechanism can be configured to only operate in 'silent mode', only sending a challenge if the request contained an authorization header.

Jira Release Notes

The full list of issues resolved is available here. Issues resolved in the WildFly Core 8 release included with WildFly 16 are available here.