Payara – Mail Resources

Running an application in Payara you can use a Mail Resource to send mails via SMTP.

In your Java EE code you can inject a Mail Resource by its name:

@Resource(lookup = "mail/my.mail.session")
Transport trans = mailSession.getTransport("smtp");

The Mail resource can be declared in the Payra Web Admin Console in the section “Resources ->JavaMail Sessions”.

Or you can define a mail resource directly in the domain.xml file:

  <mail-resource auth="false" host="smarthost" from="" user="admin" jndi-name="mail/my.mail.session"></mail-resource>
    <server config-ref="server-config" name="server">
      <resource-ref ref="mail/my.mail.session"></resource-ref>

If you define the mail resource directyl in your domain.xml file take care about the ‘resource-ref’ declaration in the seciton ‘<servers>’. If you miss this, than your application will not find the mail resource to be injected!

Running Payara on Docker in Debug Mode

The Payara project provide a well maintained docker image on Docker Hub. Since version 5.192 you can easily create a docker image which runs Payara in Debug mode. You need just to add the environment variable “PAYARA_ARGS”

FROM payara/server-full:5.192

COPY my-example.war $DEPLOY_DIR

Or you can also set the environment in your docker-compose.yml file:

version: "3.6"
    image: payara/server-full:5.192
      PAYARA_ARGS: "--debug"
      - "8080:8080"
      - "4848:4848"
      - "8181:8181"
      - "9009:9009"

After that Payara starts in Debug-Mode and listens to port 9009.