Payara Server Deployment Descriptor Files

By default, the Payara Platform allows the use of standard GlassFish Server deployment descriptor files to configure application behaviour.

Payara Platform Deployment Descriptors

The payara-web.xml deployment descriptor can be used instead of glassfish-web.xml. The top level element for the payara-web.xml file must be payara-web-app and the schema is referenced by the following declaration:

<!DOCTYPE payara-web-app PUBLIC "-//Payara.fish//DTD Payara Server 4 Servlet 3.0//EN" "https://raw.githubusercontent.com/payara/Payara-Documentation/master/docs/modules/ROOT/pages/Appendix/Schemas/payara-web-app_4.dtd">

The payara-resources.xml can be used instead of glassfish-resources.xml. Its structure is exactly the same, and the schema is referenced by the following declaration:

<!DOCTYPE resources PUBLIC "-//Payara.fish//DTD Payara Server 4 Resource Definitions//EN" "https://raw.githubusercontent.com/payara/Payara-Documentation/master/docs/modules/ROOT/pages/Appendix/Schemas/payara-resources_1_7.dtd">

See the schema reference for the list of deployment descriptor DTD files.

Allowed configuration elements

The following elements are supported in Payara Server on top of elements supported by GlassFish:

glassfish-application.xml

  • classloading-delegate

  • enable-implicit-cdi

  • default-role-mapping (property)

  • whitelist-package

  • scanning-exclude

  • scanning-include

glassfish-web.xml and payara-web.xml

  • container-initialized-enabled

  • default-role-mapping (property)

  • jaxrs-roles-allowed-enabled

  • scanning-exclude

  • scanning-include

  • jsp-config

  • whitelist-package

glassfish-ejb-jar.xml

  • webservice-default-login-config

  • default-role-mapping (property)

  • enterprise-beans

    • ejb

      • ejb-name

      • clustered-bean

      • clustered-key-name

      • clustered-lock-type

      • clustered-attach-postconstruct

      • clustered-detach-predestroy

payara-resources.xml

The structure of the payara-resources.xml is the same as glassfish-resources.xml with the following additional configurations:

  • snapshot (property of transaction isolation, this isolation level is only supported by Microsoft SQL Server)

  • log-jdbc-calls (attribute of `jdbc-connection-pool`)

  • managed-executor-service (used to configure a new ManagedExecutorService)

  • managed-scheduled-executor-service (used to configure a new ManagedScheduledExecutorService)

  • managed-thread-factory (used to configure a new ManagedThreadFactory)

Configuration of concurrency objects is demonstrated in the Payara Samples - Custom ManagedExecutorService sample project.

Deployment Descriptor Precedence Order

When multiple vendor deployment descriptors are present in the same module (including deployment descriptors of the old Sun Application Server), the descriptors are processed with the following precedence order in default mode:

WebLogic Server > Payara Platform > GlassFish Server > Sun Application Server

The default precedence order can be customized and configured via the system properties documented in the following sections.

gfdd.over.wlsdd

This system property controls the precedence between GlassFish Server and WebLogic Server deployment descriptors when they are both present. When the gfdd.over.wlsdd property is set to true, the descriptors are processed in this order:

Payara Platform > GlassFish Server > WebLogic Server > Sun Application Server

ignore.wlsdd

When the ignore.wlsdd property is set to true, the WebLogic Server deployment descriptors will be completely ignored and other descriptors will be processed in the following order:

GlassFish Server > Payara Platform > Sun Application Server