How to setup WildFly with Oracle Driver

Wildfly is a famous selection for Java developers who need a lightweight, enterprise-level extensible application server. In this tutorial, we are going to explain how to set up a Wildfly server with an oracle JDBC driver which we are going to use to connect with an oracle database.

How to Download WildFly?

Open the browser and navigate to the WildFly download page or click here

Download the latest version. As of the date we are writing this article, the latest stable version is WildFly 23.0.2.Final and we are continuing the article with that

Click on the WildFly Preview EE 9 Distribution’s zip file to download the server file.

Once downloaded, extract the downloaded file and open it.

Lets download the oracle driver

Since we are using Oracle Database 12c for this article, we are downloading the Oracle Database 12 JDBC Driver.

Navigate to the Oracle Driver page by clicking here.

For those who are using Java 8, download the Oracle Database JDBC Driver version ojdbc7.jar

Lets setup the Oracle driver to WildFly

Open the WildFly server directory.

Navigate to \modules\system\layers\base\com

Create a new folder named oracle

Go into created oracle folder and create a folder named ojdbc7

Go into created ojdbc7 folder and create a folder named main

Go into created main folder and copy the downloaded ojdbc7.jar driver in to this folder

Create a new file named module.xml and change it as below

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle.ojdbc7">
    <resources>
        <resource-root path="ojdbc7.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
	<module name="javax.transaction.api"/>
    </dependencies>
</module>

Now lets modify the standalone.xml. To do this navigate in to \standalone\configuration

Open standalone.xml and add below code between the <datasources> and </datasources>. Also Make sure to change the

and

with your database configurations.

<datasource jta="true" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-java-context="true" use-ccm="true">
               <connection-url>jdbc:oracle:thin:@10.10.120.121:1522:ABC</connection-url>
               <driver>oracle</driver>
               <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
               <pool>
                  <min-pool-size>10</min-pool-size>
                  <max-pool-size>50</max-pool-size>
                  <prefill>true</prefill>
                  <use-strict-min>false</use-strict-min>
                  <flush-strategy>FailingConnectionOnly</flush-strategy>
               </pool>
               <security>
                  <user-name>test</user-name>
                  <password>test</password>
               </security>
               <validation>
                  <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
                  <background-validation>true</background-validation>
                  <use-fast-fail>false</use-fast-fail>
                  <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter" />
               </validation>
               <timeout>
                  <blocking-timeout-millis>120000</blocking-timeout-millis>
                  <idle-timeout-minutes>30</idle-timeout-minutes>
                  <allocation-retry>3</allocation-retry>
                  <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
               </timeout>
               <statement>
                  <prepared-statement-cache-size>32</prepared-statement-cache-size>
               </statement>
            </datasource>
            <drivers>
               <driver name="h2" module="com.h2database.h2">
                  <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
               </driver>
               <driver name="oracle" module="com.oracle.ojdbc7" />
            </drivers>

The whole standalone.xml file should be similar to below complete standalone.xml file



<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="urn:jboss:domain:16.0">
   <extensions>
      <extension module="org.jboss.as.clustering.infinispan" />
      <extension module="org.jboss.as.connector" />
      <extension module="org.jboss.as.deployment-scanner" />
      <extension module="org.jboss.as.ee" />
      <extension module="org.jboss.as.ejb3" />
      <extension module="org.jboss.as.jaxrs" />
      <extension module="org.jboss.as.jdr" />
      <extension module="org.jboss.as.jmx" />
      <extension module="org.jboss.as.jpa" />
      <extension module="org.jboss.as.jsf" />
      <extension module="org.jboss.as.logging" />
      <extension module="org.jboss.as.mail" />
      <extension module="org.jboss.as.naming" />
      <extension module="org.jboss.as.pojo" />
      <extension module="org.jboss.as.remoting" />
      <extension module="org.jboss.as.sar" />
      <extension module="org.jboss.as.security" />
      <extension module="org.jboss.as.transactions" />
      <extension module="org.jboss.as.webservices" />
      <extension module="org.jboss.as.weld" />
      <extension module="org.wildfly.extension.batch.jberet" />
      <extension module="org.wildfly.extension.bean-validation" />
      <extension module="org.wildfly.extension.clustering.web" />
      <extension module="org.wildfly.extension.core-management" />
      <extension module="org.wildfly.extension.discovery" />
      <extension module="org.wildfly.extension.ee-security" />
      <extension module="org.wildfly.extension.elytron" />
      <extension module="org.wildfly.extension.health" />
      <extension module="org.wildfly.extension.io" />
      <extension module="org.wildfly.extension.metrics" />
      <extension module="org.wildfly.extension.microprofile.config-smallrye" />
      <extension module="org.wildfly.extension.microprofile.jwt-smallrye" />
      <extension module="org.wildfly.extension.microprofile.opentracing-smallrye" />
      <extension module="org.wildfly.extension.request-controller" />
      <extension module="org.wildfly.extension.security.manager" />
      <extension module="org.wildfly.extension.undertow" />
   </extensions>
   <management>
      <security-realms>
         <security-realm name="ManagementRealm">
            <authentication>
               <local default-user="$local" skip-group-loading="true" />
               <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" />
            </authentication>
            <authorization map-groups-to-roles="false">
               <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir" />
            </authorization>
         </security-realm>
         <security-realm name="ApplicationRealm">
            <server-identities>
               <ssl>
                  <keystore path="application.keystore" relative-to="jboss.server.config.dir" keystore-password="password" alias="server" key-password="password" generate-self-signed-certificate-host="localhost" />
               </ssl>
            </server-identities>
            <authentication>
               <local default-user="$local" allowed-users="*" skip-group-loading="true" />
               <properties path="application-users.properties" relative-to="jboss.server.config.dir" />
            </authentication>
            <authorization>
               <properties path="application-roles.properties" relative-to="jboss.server.config.dir" />
            </authorization>
         </security-realm>
      </security-realms>
      <audit-log>
         <formatters>
            <json-formatter name="json-formatter" />
         </formatters>
         <handlers>
            <file-handler name="file" formatter="json-formatter" path="audit-log.log" relative-to="jboss.server.data.dir" />
         </handlers>
         <logger log-boot="true" log-read-only="false" enabled="false">
            <handlers>
               <handler name="file" />
            </handlers>
         </logger>
      </audit-log>
      <management-interfaces>
         <http-interface security-realm="ManagementRealm">
            <http-upgrade enabled="true" />
            <socket-binding http="management-http" />
         </http-interface>
      </management-interfaces>
      <access-control provider="simple">
         <role-mapping>
            <role name="SuperUser">
               <include>
                  <user name="$local" />
               </include>
            </role>
         </role-mapping>
      </access-control>
   </management>
   <profile>
      <subsystem xmlns="urn:jboss:domain:logging:8.0">
         <console-handler name="CONSOLE">
            <level name="INFO" />
            <formatter>
               <named-formatter name="COLOR-PATTERN" />
            </formatter>
         </console-handler>
         <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
               <named-formatter name="PATTERN" />
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log" />
            <suffix value=".yyyy-MM-dd" />
            <append value="true" />
         </periodic-rotating-file-handler>
         <logger category="com.arjuna">
            <level name="WARN" />
         </logger>
         <logger category="io.jaegertracing.Configuration">
            <level name="WARN" />
         </logger>
         <logger category="org.jboss.as.config">
            <level name="DEBUG" />
         </logger>
         <logger category="sun.rmi">
            <level name="WARN" />
         </logger>
         <root-logger>
            <level name="INFO" />
            <handlers>
               <handler name="CONSOLE" />
               <handler name="FILE" />
            </handlers>
         </root-logger>
         <formatter name="PATTERN">
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n" />
         </formatter>
         <formatter name="COLOR-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n" />
         </formatter>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
         <default-job-repository name="in-memory" />
         <default-thread-pool name="batch" />
         <job-repository name="in-memory">
            <in-memory />
         </job-repository>
         <thread-pool name="batch">
            <max-threads count="10" />
            <keepalive-time time="30" unit="seconds" />
         </thread-pool>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:bean-validation:1.0" />
      <subsystem xmlns="urn:jboss:domain:core-management:1.0" />
      <subsystem xmlns="urn:jboss:domain:datasources:6.0">
         <datasources>
            <datasource jta="true" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-java-context="true" use-ccm="true">
               <connection-url>jdbc:oracle:thin:@10.10.120.121:1522:ABC</connection-url>
               <driver>oracle</driver>
               <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
               <pool>
                  <min-pool-size>10</min-pool-size>
                  <max-pool-size>50</max-pool-size>
                  <prefill>true</prefill>
                  <use-strict-min>false</use-strict-min>
                  <flush-strategy>FailingConnectionOnly</flush-strategy>
               </pool>
               <security>
                  <user-name>test</user-name>
                  <password>test</password>
               </security>
               <validation>
                  <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
                  <background-validation>true</background-validation>
                  <use-fast-fail>false</use-fast-fail>
                  <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter" />
               </validation>
               <timeout>
                  <blocking-timeout-millis>120000</blocking-timeout-millis>
                  <idle-timeout-minutes>30</idle-timeout-minutes>
                  <allocation-retry>3</allocation-retry>
                  <allocation-retry-wait-millis>1000</allocation-retry-wait-millis>
               </timeout>
               <statement>
                  <prepared-statement-cache-size>32</prepared-statement-cache-size>
               </statement>
            </datasource>
            <drivers>
               <driver name="h2" module="com.h2database.h2">
                  <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
               </driver>
               <driver name="oracle" module="com.oracle.ojdbc7" />
            </drivers>
         </datasources>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
         <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:discovery:1.0" />
      <subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="default" default-single-sign-on-management="default">
         <infinispan-session-management name="default" cache-container="web" granularity="SESSION">
            <local-affinity />
         </infinispan-session-management>
         <infinispan-single-sign-on-management name="default" cache-container="web" cache="sso" />
         <local-routing />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:ee:6.0">
         <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
         <concurrent>
            <context-services>
               <context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default" use-transaction-setup-provider="true" />
            </context-services>
            <managed-thread-factories>
               <managed-thread-factory name="default" jndi-name="java:jboss/ee/concurrency/factory/default" context-service="default" />
            </managed-thread-factories>
            <managed-executor-services>
               <managed-executor-service name="default" jndi-name="java:jboss/ee/concurrency/executor/default" context-service="default" hung-task-termination-period="0" hung-task-threshold="60000" keepalive-time="5000" />
            </managed-executor-services>
            <managed-scheduled-executor-services>
               <managed-scheduled-executor-service name="default" jndi-name="java:jboss/ee/concurrency/scheduler/default" context-service="default" hung-task-termination-period="0" hung-task-threshold="60000" keepalive-time="3000" />
            </managed-scheduled-executor-services>
         </concurrent>
         <default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:jboss/datasources/ExampleDS" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:ee-security:1.0" />
      <subsystem xmlns="urn:jboss:domain:ejb3:9.0">
         <session-bean>
            <stateless>
               <bean-instance-pool-ref pool-name="slsb-strict-max-pool" />
            </stateless>
            <stateful default-access-timeout="5000" cache-ref="simple" passivation-disabled-cache-ref="simple" />
            <singleton default-access-timeout="5000" />
         </session-bean>
         <pools>
            <bean-instance-pools>
               <strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES" />
               <strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES" />
            </bean-instance-pools>
         </pools>
         <caches>
            <cache name="simple" />
            <cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered" />
         </caches>
         <passivation-stores>
            <passivation-store name="infinispan" cache-container="ejb" max-size="10000" />
         </passivation-stores>
         <async thread-pool-name="default" />
         <timer-service thread-pool-name="default" default-data-store="default-file-store">
            <data-stores>
               <file-data-store name="default-file-store" path="timer-service-data" relative-to="jboss.server.data.dir" />
            </data-stores>
         </timer-service>
         <remote cluster="ejb" connectors="http-remoting-connector" thread-pool-name="default">
            <channel-creation-options>
               <option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting" />
            </channel-creation-options>
         </remote>
         <thread-pools>
            <thread-pool name="default">
               <max-threads count="10" />
               <keepalive-time time="60" unit="seconds" />
            </thread-pool>
         </thread-pools>
         <default-security-domain value="other" />
         <default-missing-method-permissions-deny-access value="true" />
         <statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}" />
         <log-system-exceptions value="true" />
      </subsystem>
      <subsystem xmlns="urn:wildfly:elytron:13.0" final-providers="combined-providers" disallowed-providers="OracleUcrypto">
         <providers>
            <aggregate-providers name="combined-providers">
               <providers name="elytron" />
               <providers name="openssl" />
            </aggregate-providers>
            <provider-loader name="elytron" module="org.wildfly.security.elytron" />
            <provider-loader name="openssl" module="org.wildfly.openssl" />
         </providers>
         <audit-logging>
            <file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir" format="JSON" />
         </audit-logging>
         <security-domains>
            <security-domain name="ApplicationDomain" default-realm="ApplicationRealm" permission-mapper="default-permission-mapper">
               <realm name="ApplicationRealm" role-decoder="groups-to-roles" />
               <realm name="local" />
            </security-domain>
            <security-domain name="ManagementDomain" default-realm="ManagementRealm" permission-mapper="default-permission-mapper">
               <realm name="ManagementRealm" role-decoder="groups-to-roles" />
               <realm name="local" role-mapper="super-user-mapper" />
            </security-domain>
         </security-domains>
         <security-realms>
            <identity-realm name="local" identity="$local" />
            <properties-realm name="ApplicationRealm">
               <users-properties path="application-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ApplicationRealm" />
               <groups-properties path="application-roles.properties" relative-to="jboss.server.config.dir" />
            </properties-realm>
            <properties-realm name="ManagementRealm">
               <users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ManagementRealm" />
               <groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir" />
            </properties-realm>
         </security-realms>
         <mappers>
            <simple-permission-mapper name="default-permission-mapper" mapping-mode="first">
               <permission-mapping>
                  <principal name="anonymous" />
                  <permission-set name="default-permissions" />
               </permission-mapping>
               <permission-mapping match-all="true">
                  <permission-set name="login-permission" />
                  <permission-set name="default-permissions" />
               </permission-mapping>
            </simple-permission-mapper>
            <constant-realm-mapper name="local" realm-name="local" />
            <simple-role-decoder name="groups-to-roles" attribute="groups" />
            <constant-role-mapper name="super-user-mapper">
               <role name="SuperUser" />
            </constant-role-mapper>
         </mappers>
         <permission-sets>
            <permission-set name="login-permission">
               <permission class-name="org.wildfly.security.auth.permission.LoginPermission" />
            </permission-set>
            <permission-set name="default-permissions">
               <permission class-name="org.wildfly.extension.batch.jberet.deployment.BatchPermission" module="org.wildfly.extension.batch.jberet" target-name="*" />
               <permission class-name="org.wildfly.transaction.client.RemoteTransactionPermission" module="org.wildfly.transaction.client" />
               <permission class-name="org.jboss.ejb.client.RemoteEJBPermission" module="org.jboss.ejb-client" />
            </permission-set>
         </permission-sets>
         <http>
            <http-authentication-factory name="management-http-authentication" security-domain="ManagementDomain" http-server-mechanism-factory="global">
               <mechanism-configuration>
                  <mechanism mechanism-name="DIGEST">
                     <mechanism-realm realm-name="ManagementRealm" />
                  </mechanism>
               </mechanism-configuration>
            </http-authentication-factory>
            <provider-http-server-mechanism-factory name="global" />
         </http>
         <sasl>
            <sasl-authentication-factory name="application-sasl-authentication" sasl-server-factory="configured" security-domain="ApplicationDomain">
               <mechanism-configuration>
                  <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local" />
                  <mechanism mechanism-name="DIGEST-MD5">
                     <mechanism-realm realm-name="ApplicationRealm" />
                  </mechanism>
               </mechanism-configuration>
            </sasl-authentication-factory>
            <sasl-authentication-factory name="management-sasl-authentication" sasl-server-factory="configured" security-domain="ManagementDomain">
               <mechanism-configuration>
                  <mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local" />
                  <mechanism mechanism-name="DIGEST-MD5">
                     <mechanism-realm realm-name="ManagementRealm" />
                  </mechanism>
               </mechanism-configuration>
            </sasl-authentication-factory>
            <configurable-sasl-server-factory name="configured" sasl-server-factory="elytron">
               <properties>
                  <property name="wildfly.sasl.local-user.default-user" value="$local" />
               </properties>
            </configurable-sasl-server-factory>
            <mechanism-provider-filtering-sasl-server-factory name="elytron" sasl-server-factory="global">
               <filters>
                  <filter provider-name="WildFlyElytron" />
               </filters>
            </mechanism-provider-filtering-sasl-server-factory>
            <provider-sasl-server-factory name="global" />
         </sasl>
         <tls>
            <key-stores>
               <key-store name="applicationKS">
                  <credential-reference clear-text="password" />
                  <implementation type="JKS" />
                  <file path="application.keystore" relative-to="jboss.server.config.dir" />
               </key-store>
            </key-stores>
            <key-managers>
               <key-manager name="applicationKM" key-store="applicationKS" generate-self-signed-certificate-host="localhost">
                  <credential-reference clear-text="password" />
               </key-manager>
            </key-managers>
            <server-ssl-contexts>
               <server-ssl-context name="applicationSSC" key-manager="applicationKM" />
            </server-ssl-contexts>
         </tls>
      </subsystem>
      <subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false" />
      <subsystem xmlns="urn:jboss:domain:infinispan:12.0">
         <cache-container name="ejb" default-cache="passivation" aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
            <local-cache name="passivation">
               <file-store passivation="true" purge="false" />
            </local-cache>
         </cache-container>
         <cache-container name="web" default-cache="passivation" modules="org.wildfly.clustering.web.infinispan">
            <local-cache name="passivation">
               <file-store passivation="true" purge="false" />
            </local-cache>
            <local-cache name="sso" />
         </cache-container>
         <cache-container name="server" default-cache="default" modules="org.wildfly.clustering.server">
            <local-cache name="default" />
         </cache-container>
         <cache-container name="hibernate" modules="org.infinispan.hibernate-cache">
            <local-cache name="entity">
               <heap-memory size="10000" />
               <expiration max-idle="100000" />
            </local-cache>
            <local-cache name="local-query">
               <heap-memory size="10000" />
               <expiration max-idle="100000" />
            </local-cache>
            <local-cache name="timestamps" />
            <local-cache name="pending-puts">
               <expiration max-idle="60000" />
            </local-cache>
         </cache-container>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:io:3.0">
         <worker name="default" />
         <buffer-pool name="default" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:jaxrs:2.0" />
      <subsystem xmlns="urn:jboss:domain:jca:5.0">
         <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false" />
         <bean-validation enabled="true" />
         <default-workmanager>
            <short-running-threads>
               <core-threads count="50" />
               <queue-length count="50" />
               <max-threads count="50" />
               <keepalive-time time="10" unit="seconds" />
            </short-running-threads>
            <long-running-threads>
               <core-threads count="50" />
               <queue-length count="50" />
               <max-threads count="50" />
               <keepalive-time time="10" unit="seconds" />
            </long-running-threads>
         </default-workmanager>
         <cached-connection-manager />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:jdr:1.0" />
      <subsystem xmlns="urn:jboss:domain:jmx:1.3">
         <expose-resolved-model />
         <expose-expression-model />
         <remoting-connector />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:jpa:1.1">
         <jpa default-extended-persistence-inheritance="DEEP" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:jsf:1.1" />
      <subsystem xmlns="urn:jboss:domain:mail:4.0">
         <mail-session name="default" jndi-name="java:jboss/mail/Default">
            <smtp-server outbound-socket-binding-ref="mail-smtp" />
         </mail-session>
      </subsystem>
      <subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*" prefix="${wildfly.metrics.prefix:wildfly}" />
      <subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0" />
      <subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0" />
      <subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
         <jaeger-tracer name="jaeger">
            <sampler-configuration sampler-type="const" sampler-param="1.0" />
         </jaeger-tracer>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:naming:2.0">
         <remote-naming />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:pojo:1.0" />
      <subsystem xmlns="urn:jboss:domain:remoting:4.0">
         <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:request-controller:1.0" />
      <subsystem xmlns="urn:jboss:domain:resource-adapters:6.0" />
      <subsystem xmlns="urn:jboss:domain:sar:1.0" />
      <subsystem xmlns="urn:jboss:domain:security:2.0">
         <security-domains>
            <security-domain name="other" cache-type="default">
               <authentication>
                  <login-module code="Remoting" flag="optional">
                     <module-option name="password-stacking" value="useFirstPass" />
                  </login-module>
                  <login-module code="RealmDirect" flag="required">
                     <module-option name="password-stacking" value="useFirstPass" />
                  </login-module>
               </authentication>
            </security-domain>
            <security-domain name="jboss-web-policy" cache-type="default">
               <authorization>
                  <policy-module code="Delegating" flag="required" />
               </authorization>
            </security-domain>
            <security-domain name="jaspitest" cache-type="default">
               <authentication-jaspi>
                  <login-module-stack name="dummy">
                     <login-module code="Dummy" flag="optional" />
                  </login-module-stack>
                  <auth-module code="Dummy" />
               </authentication-jaspi>
            </security-domain>
            <security-domain name="jboss-ejb-policy" cache-type="default">
               <authorization>
                  <policy-module code="Delegating" flag="required" />
               </authorization>
            </security-domain>
         </security-domains>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
         <deployment-permissions>
            <maximum-set>
               <permission class="java.security.AllPermission" />
            </maximum-set>
         </deployment-permissions>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:transactions:6.0">
         <core-environment node-identifier="${jboss.tx.node.id:1}">
            <process-id>
               <uuid />
            </process-id>
         </core-environment>
         <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager" />
         <coordinator-environment statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}" />
         <object-store path="tx-object-store" relative-to="jboss.server.data.dir" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
         <buffer-cache name="default" />
         <server name="default-server">
            <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" />
            <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true" />
            <host name="default-host" alias="localhost">
               <location name="/" handler="welcome-content" />
               <http-invoker security-realm="ApplicationRealm" />
            </host>
         </server>
         <servlet-container name="default">
            <jsp-config />
            <websockets />
         </servlet-container>
         <handlers>
            <file name="welcome-content" path="${jboss.home.dir}/welcome-content" />
         </handlers>
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:webservices:2.0" statistics-enabled="${wildfly.webservices.statistics-enabled:${wildfly.statistics-enabled:false}}">
         <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
         <endpoint-config name="Standard-Endpoint-Config" />
         <endpoint-config name="Recording-Endpoint-Config">
            <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
               <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler" />
            </pre-handler-chain>
         </endpoint-config>
         <client-config name="Standard-Client-Config" />
      </subsystem>
      <subsystem xmlns="urn:jboss:domain:weld:4.0" />
   </profile>
   <interfaces>
      <interface name="management">
         <inet-address value="${jboss.bind.address.management:127.0.0.1}" />
      </interface>
      <interface name="public">
         <inet-address value="${jboss.bind.address:127.0.0.1}" />
      </interface>
   </interfaces>
   <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
      <socket-binding name="ajp" port="${jboss.ajp.port:8009}" />
      <socket-binding name="http" port="${jboss.http.port:8080}" />
      <socket-binding name="https" port="${jboss.https.port:8443}" />
      <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}" />
      <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}" />
      <socket-binding name="txn-recovery-environment" port="4712" />
      <socket-binding name="txn-status-manager" port="4713" />
      <outbound-socket-binding name="mail-smtp">
         <remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}" />
      </outbound-socket-binding>
   </socket-binding-group>
</server>

Finally up the server and check if there are any errors

Leave a Reply

Your email address will not be published. Required fields are marked *