How to use Payara Micro Maven Plugin (ja)

先頃リリースされた Payara 172 はクラウドに焦点を当てた様々な新機能を提供しています。それら新機能の中に Payara Micro Maven Plugin があります。小さな機能ですが、Payara Micro で動作するアプリケーションを開発するのにとても便利です。

従来、Payara Micro 向けのアプリケーションを Payara Server なしで開発するのは難しいことでした。IDE が Payara Micro と連携しないためです。これが Payara Micro Maven Plugin を使用することによって改善されます。

1. Payara Micro Maven Plugin の準備

Payara Micro Maven Plugin の最新バージョンは 1.0.0-SNAPSHOT であり、まだ Maven central リポジトリーに収録されていません。従って、まずはソースコードを GitHub からチェックアウトしてビルドするところから始めます。

$ git clone https://github.com/payara/maven-plugins
$ cd maven-plugins/payara-micro-maven-plugins
$ mvn install

2. Payara Micro Maven Plugin の使い方

まずは Payara Micro Maven Plugin の GAV を示します。

KeyValue
groupId fish.payara.maven.plugins
artifactId payara-micro-maven-plugin
version 1.0.0-SNAPSHOT

Payara Micro Maven Plugin は 3 つのゴール、payara-micro:bundle, payara-micro:start and payara-micro:stop が定義されています。それぞれ以下の通りです。

GoalDescription
payara-micro:bundle Uber Jar を作成する
payara-micro:start アプリケーションを Payara Micro 上で実行する
payara-micro:stop アプリケーション (Payara Micro で実行中) を停止する。

pom.xml に最小限追記すべき事項は以下の通りです。

<build>
  <plugins>
    <!-- snip -->
    <plugin>
      <groupId>fish.payara.maven.plugins</groupId>
      <artifactId>payara-micro-maven-plugin</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </plugin>
    <!-- snip -->
  </plugins>
</build>

ただし、これにはいくつかの問題があります。

  • payara-micro:bundle の実行前に War ファイルを作成しておかなければなりません。War ファイルが存在しない状況で実行するとエラーになります。
  • payara-micro:start は既定では Uber Jar を実行しません。このゴールは Payara Micro の様々なオプションをサポートするため、Uber Jar には特化していないことによります。
  • 既定では、プラグインは Payara Micro 4.1.1.171 を使用します。ただし、このバージョンは Windows では全く動作しないというバグがあります (そのため公式アナウンス時には既に 4.1.1.171.0.1 となっていたのです)。

では、実質的な最小限の追記事項を以下に示します。

<build>
  <plugins>
    <!-- snip -->
    <plugin>
      <groupId>fish.payara.maven.plugins</groupId>
      <artifactId>payara-micro-maven-plugin</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <executions>
        <execution>
          <goals>
            <goal>bundle</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <payaraVersion>4.1.2.172</payaraVersion>
        <useUberJar>true</useUberJar>
      </configuration>
    </plugin>
    <!-- snip -->
  </plugins>
</build>

ゴール install 実行と併せて payara-micro:bundle も実行されます。そのため、アプリケーションのビルドから Uber Jar の作成までを 1 ステップ、`mvn install` だけで済みます (どうです、簡単でしょう?)。

実行後、おそらく project-name/target 下に 2 つのファイルが出来ていることでしょう。

  • application-name.war (e.g. helloweb-1.1.0.war)
  • application-name-microbundle.jar (e.g. helloweb-1.1.0-microbundle.jar)

2 番目のファイルが Uber Jar です。これを直接 CLI で実行しても、あるいは Maven プラグイン経由 (payara-micro:start および payara-micro:stop) で実行しても構いません。Maven プラグインを使用することで任意の IDE と連携させることが出来ます。そのため、Payara Server の助けを借りなくても Payara Micro 向けのアプリケーションを容易に開発できるようになりました。

3. まとめ

Payara Micro を使うのはとても簡単です。現在ではさらに Payara Micro Maven Plugin の登場により、任意の IDE と連携させることができるようになっています。

詳細については Payara Micro Maven Plugin のページ をご覧ください。

4. おまけ

この記事を書くに当たって、私はサンプルアプリケーションとして https://github.com/khasunuma/helloweb/ を使用しました。これをビルドおよび実行すると、IDE のコンソールに以下のようなログが出力されます。

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building helloweb 1.1.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- payara-micro-maven-plugin:1.0.0-SNAPSHOT:start (default-cli) @ helloweb ---
[INFO] Starting payara-micro from path: C:\Users\Kenji\workspace\helloweb\target/helloweb-1.1.0-microbundle.jar
(snip)
[2017-06-15T21:43:17.604+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597604] [levelValue: 800] 
Instance Configuration
Host: lysithea.voyager.coppermine.jp
HTTP Port(s): 8080 
HTTPS Port(s): 
Instance Name: Aggressive-Batfish
Instance Group: MicroShoal
Hazelcast Member UUID 1fb214f2-ac78-454e-a52c-81faf0d4f8b3
Deployed: helloweb-1.1.0 ( helloweb-1.1.0 war /helloweb-1.1.0 )



[2017-06-15T21:43:17.606+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597606] [levelValue: 800] 
Payara Micro URLs
http://lysithea.voyager.coppermine.jp:8080/helloweb-1.1.0

'helloweb-1.1.0' REST Endpoints
GET	/helloweb-1.1.0/api/hello
GET	/helloweb-1.1.0/api/hello



[2017-06-15T21:43:17.606+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597606] [levelValue: 800] Payara Micro  4.1.2.172 #badassmicrofish (build 235) ready in 12,255 (ms)

Payara Micro 172 以降では、アプリケーションの URLs と REST エンドポイントがログの最後に出力されるようになりました。これでもうパスを間違えずに済みますね。

How to use Payara Micro Maven Plugin

Payara 172 has various new features that are highly cloud-focused. A part of them, Payara Micro Maven Plugin is provided. It's a small but useful tools to develop applications running on Payara Micro.

Previously, there is a problem that it's difficult to develop applications for Payara Micro without Payara Server because no IDEs support Payara Micro directly. Now it has solved to use Payara Micro Maven Plugin.

1. Preparing Payara Micro Maven Plugin

Latest version of Payara Micro Maven Plugin is 1.0.0-SNAPSHOT, thus it's not on Maven central repository. At first we check out from GitHub and build it.

$ git clone https://github.com/payara/maven-plugins
$ cd maven-plugins/payara-micro-maven-plugins
$ mvn install

2. Using Payara Micro Maven Plugin

Here is GAV of Payara Micro Maven Plugin.

KeyValue
groupId fish.payara.maven.plugins
artifactId payara-micro-maven-plugin
version 1.0.0-SNAPSHOT

Payara Micro Maven Plugin has three goals; payara-micro:bundle, payara-micro:start and payara-micro:stop.

GoalDescription
payara-micro:bundle Create Uber Jar
payara-micro:start Start the application on Payara Micro
payara-micro:stop Stop the application on Payara Micro

Then minimal description on pom.xml is here:

<build>
  <plugins>
    <!-- snip -->
    <plugin>
      <groupId>fish.payara.maven.plugins</groupId>
      <artifactId>payara-micro-maven-plugin</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </plugin>
    <!-- snip -->
  </plugins>
</build>

But minimal description has some problems.

  • We have to create a War file before run payara-micro:bundle. The goal assumes the War file exists.
  • Goal payara-micro:start doesn't use Uber Jar in default. The goal supports various option of Payara Micro, thus it's not specified to Uber Jar.
  • In default, this plugin uses Payara Micro 4.1.1.171. Unfortunately, this version cannot run on Windows platform because of its bug. (Therefore Payara Micro 4.1.1.171.0.1 was released instead of it.)

Then, I show effectively minimal description as follows:

<build>
  <plugins>
    <!-- snip -->
    <plugin>
      <groupId>fish.payara.maven.plugins</groupId>
      <artifactId>payara-micro-maven-plugin</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <executions>
        <execution>
          <goals>
            <goal>bundle</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <payaraVersion>4.1.2.172</payaraVersion>
        <useUberJar>true</useUberJar>
      </configuration>
    </plugin>
    <!-- snip -->
  </plugins>
</build>

This runs goal payara-micro:bundle with goal install. So that we may do only one step `mvn install` to build an application and create Uber Jar. (I think it's very useful, don't you?)

After the goal, it seems that there are two files in project-name/target.

  • application-name.war (e.g. helloweb-1.1.0.war)
  • application-name-microbundle.jar (e.g. helloweb-1.1.0-microbundle.jar)

The second is Uber Jar. We may run it either on CLI directly or via the plugin's goals; payara-micro:start and payara-micro:stop. The way to use the plugin can be integrated with any IDEs, so we're able to develop applications for Payara Micro easily even if we don't use Payara Server.

3. Conclusion

To use Payara Micro is very easy. Now Payara Micro is integrated with any IDEs by using Payara Micro Maven Plugin.

If you want to know more information, see Payara Micro Maven Plugin's page.

4. Appendix

To write this article, I use https://github.com/khasunuma/helloweb/ as a sample application. And build and run it using the plugin, it's logging in the console of my IDE as follows:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building helloweb 1.1.0
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- payara-micro-maven-plugin:1.0.0-SNAPSHOT:start (default-cli) @ helloweb ---
[INFO] Starting payara-micro from path: C:\Users\Kenji\workspace\helloweb\target/helloweb-1.1.0-microbundle.jar
(snip)
[2017-06-15T21:43:17.604+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597604] [levelValue: 800] 
Instance Configuration
Host: lysithea.voyager.coppermine.jp
HTTP Port(s): 8080 
HTTPS Port(s): 
Instance Name: Aggressive-Batfish
Instance Group: MicroShoal
Hazelcast Member UUID 1fb214f2-ac78-454e-a52c-81faf0d4f8b3
Deployed: helloweb-1.1.0 ( helloweb-1.1.0 war /helloweb-1.1.0 )



[2017-06-15T21:43:17.606+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597606] [levelValue: 800] 
Payara Micro URLs
http://lysithea.voyager.coppermine.jp:8080/helloweb-1.1.0

'helloweb-1.1.0' REST Endpoints
GET	/helloweb-1.1.0/api/hello
GET	/helloweb-1.1.0/api/hello



[2017-06-15T21:43:17.606+0900] [] [INFO] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1497530597606] [levelValue: 800] Payara Micro  4.1.2.172 #badassmicrofish (build 235) ready in 12,255 (ms)

Payara Micro 172 or later, it shows URLs and REST Endpoints in the end of starting log. So we're able to obtain the paths definitely.

Introduction to Azul Zulu (ja)

今回は Azul Zulu についてご紹介します。

1. Zulu とは?

Zule は Azul Systems が配布および商用サポートを提供している OpenJDK です。当然のことですが Oracle JDK とも高い互換性を有しています。

Azul Systems は、Java Champion でありかつて Oracle の Java エバンジェリストであった Simon Ritter が現在副 CTO を務めている企業です。

Zule には以下の長所があります。

  • 純粋な OpenJDK -- 真のオープンソースであり、言うまでもなく OpenJDK の互換性検証に合格し認証を受けた JDK です。
  • 商用サポートの提供 -- Zulu ユーザーは、OSS として利用を開始した後、必要に応じて商用サポートを購入することが可能です (商用版は Zulu Enterprise と呼ばれます)。
  • コンパクト -- Zulu のインストール・イメージは Oracle JDK よりもはるかに小さく抑えられています。これは Zulu が public JDK といくつかの Oracle 製ツール (そのほとんどが Oracle の商用サポート下でしか利用できない) を含んでいないためです。
  • 長期サポートの提供 -- 現行の JDK 8 だけでなく、古い JDK 7 や JDK 6 もサポート対象です。また、JDK 9 の Preview 版も随時最新のものが提供されています。

現時点では Zulu は JavaFX を含んでいませんが、Payara Server/Payara Micro は Zulu 上で問題なく動作します (Payara でも動作保証済)。もし JDK のみが必要であれば、Zulu も有力な選択肢となります。

2. Zulu のインストール

ます、Zulu を Azul Systems のダウンロードサイトから取得します。

その後、インストーラーを実行する (Windows / Mac OS X)、パッケージ・マネージャーを利用する (Linux)、あるいは .zip / .tar.gz アーカイブを展開することでセットアップを行います。詳しい情報は Instrallation Guides を参照してください。これはあくまで私の主観ですが、Zulu のインストールで躓くことはほとんどないと思います。

Zulu はすべて 64 ビット版が公開されていますが、何らかの事情により 32 ビット版を使用しなければならない場合には (最近はレアケースだと思いますが)、Azul Systems (@AzulSystems) に問い合わせることで 32 ビット版のビルドを作成してもらうことも可能です (おそらくは有償)。詳しくは以下の Tweet をご覧ください。

Zulu のインストールが完了したら、Zulu の JVM ツールへのパスを PATH 環境変数に追加してください。すべてが完了すると、以下のような結果が得られると思います (Windows 10 の例)。

zulu-jvm.png

3. Payara と Zulu について

Payara Server と Payara Micro はともに Zulu 上で動作することが保証されています。また、Zulu の商用サポートは Payara のそれと似たところがあります。単純な価格比較では、Zulu は Oracle の Java SE Advanced よりも安価に設定されています。特にサーバーサイド Java において、Zulu は Oracle JDK の代替案として利用できるのではないでしょうか?

Introduction to Azul Zulu

I'd like to introduce to Azul Zulu on this article.

1. What's Zulu?

Zule is one of OpenJDK distribution from Azul Systems. It is highly compatible software, similar to Oracle's Java.

Azul Systems is famous that Simon Ritter (a Java Champion, ex. a Java evangerist in Oracle Corp.) works as Deputy CTO.

Zule has some advantage:

  • Based on pure OpenJDK -- Truly Open Source Products. Not to say, pass to OpenJDK's TCK.
  • Production readiness -- Zulu users can buy it's support (called Zulu Enterprise) when to need.
  • Compact -- Zulu's image is so smaller than Oracle JDK. Because Zulu exclude several Oracle's tools. (some of they are required Oracle's commertial support)
  • Long-term support -- Supports not only JDK 8 but also JDK 7 and JDK 6, and provides JDK 9 Preview.

Now Zulu does not include JavaFX, but Payara Server/Payara Micro work well on Zule. If you need only JDK (without public JRE and so), I recommends Zulu.

2. Installation Zulu

At first, download Zulu from the site;

Then run installer (Windows or Mac OS X), use package manager (Linux) or extract .zip or .tar.gz to setup. If you need more information, please see Instrallation Guides. It's my opinion, instrallation of Zulu is very easy.

If you need Zuru on Windows 32-bit or Linux 32-bit (proberbly there are a few cases), you may request 32-bit binaries by contacting Azul Systems (@AzulSystems). See also;

After the installation of Zulu, you should add path to Zulu JVM tools to $PATH. All steps are done, you obtain such a result (here is result on Windows 10).

zulu-jvm.png

3. Payara and Zulu

Both Payara Server and Payara Micro run on Zulu and work well. Thus Payara officially supports Zulu. It's support services look like Payara's and the price is lower than Oracle's Java SE Advanced. I think Zulu is able to be alternative of Oracle JDK in Server-Side systems.

Using GAV deploy on Payara Micro

This article is the translation that written in Japanese on 20th December 2016. The original article (Japanese) is here.

We can deploy WAR files on Maven repositories to Payara Micro directly. In this article, I'll show it by a sample. Using GAV deploy needs to prepare a Maven repository at once, but it's easy after preparing it.

1. Prepare: Create a WAR file and register to a Maven repository

At the first, we need to prepare a Maven repository to upload a WAR file. If you can use Maven Central repository, it's the best. (See also http://maven.apache.org/guides/mini/guide-central-repository-upload.html when to upload Maven Central) Otherwise, use Sonatype Nexus for building a Maven repository.

We may upload any WAR files that is able to run on Payara Micro. If you need, multiple WAR files can be deployed also GAV deploy. But using snapshot version is easy to happen a trouble, so I recommend to use release version.

2. How to use GAV deploy

I make a sample WAR file that output "Hello, world" using JAX-RS. The code is on https://github.com/khasunuma/helloweb/tree/version-1.0. It's already upload to a Maven repository I prepared.

Then run to following command line, and deploy and run the sample.

When writing the original articles, the latest version of Payara Micro is 4.1.1.164.

java -jar payara-micro-4.1.1.164.jar --deployFromGAV jp.coppermine.samples:helloweb:1.0.0 --additionalRepository http://repo1.cubiwano.org/repository/maven-public

Give groupId, artifactId and version of the WAR file by --deployFromGAV option. And if use the in-house repository (not Maven Central), give the URL by --additionalRepository option. (In this case, the URL is http://repo1.haswell.jp/repository/maven-public)

Attention: the Maven repository using the sample (repo1.cubiwano.org) is accept both HTTP and HTTPS but should use "HTTP" in GAV deploy.

If you open http://localhost:8080/helloweb/api/hello by a Web browser, it shall show "Hello, world".

Using Payara Micro API is following. (the complete code is on https://github.com/khasunuma/payaramicro-gav)

package jp.copermine.samples.payaramicro;

import fish.payara.micro.BootstrapException;
import fish.payara.micro.PayaraMicro;

public class GavDeploy {

    public static void main(String[] args) throws BootstrapException {
        // Required if not using Maven central repository 
        final String repositoryUrl = "http://repo1.cubiwano.org/repository/maven-public";
        
        // groupId , artifactId , version
        // if version is SNAPSHOT, it may not run well
        final String gav = "jp.coppermine.samples,helloweb,1.0.0";
        
        PayaraMicro.getInstance().addRepoUrl(repositoryUrl).addDeployFromGAV(gav).setNoCluster(true).bootStrap();
    }

}

[Presentation] How to use MicroProfile and ...

I made presentation at Oracle Code Tokyo (18th May 2017) and JJUG CCC 2017 Spring (20th May 2017) about introduction to MicroProfile. The slides are following;

Microservice Architecture is recently attending in Japan. But MicroProfile is known only few Japanese developers. Thus I mainly explained the basis of MicroProfile and Microservice Architecture. In addition to show a use case that replace Japanese End-user computing (it's often unreliable) by Microservice.

In Japan, almost server-side Java developers look at Spring Framework but ignore Java EE. (I don't understand why they hesitate Java EE so much...) If as many people as notice MicroProfile, I'm glad.

今回は Eclipse Data Tools Platform (Eclipse DTP) から SQL Server 2016 に接続するための手順についてご紹介します。

Eclipse DTP は Eclipse の公式プラグインの 1 つで、データベースへの接続とクエリーなどの操作を行うことができるものです。Eclipse Neon のいくつかのパッケージには Eclipse DTP が同梱されており (例えば、Eclipse Java EE Developer)、すぐに使用することができます。Eclipse DTP ではデータベース接続手順を簡略化するため、いくつかのデータベース、例えば Oracle、SQL Server、DB2 などに対応した設定のテンプレートが用意されています。今回は、SQL Server 2016 の接続設定を行ってみましたが、実際にはいくつかの追加設定が必要だったため、このエントリーにて取り上げます。

1. 前提条件

  • Microsoft SQL Server 2016 (Standard, Enterprise or Developer Edition) がインストールされ、かつログインユーザーの認証方式が「SQL Server 認証」であること。Windows 統合認証は手順が煩雑となるため、可能であれば避けた方が無難です。
  • Eclipse DTP 1.3 (Neon.3) -- Java EE Developers などには標準で含まれています。含まれていない場合は追加してください。
  • Microsoft JDBC Driver 4.0 以降 (最新バージョンは 6.0) -- インストール先は任意ですが、最低限 Eclipse と同じホストにしておいてください。

2. 設定方法

Step 1. SQL Server 2016 用の接続プロファイルの作成

新しい接続プロファイルを作成します。接続プロファイル・タイプの一覧から 'SQL Server' を選択してください。'名前' の入力は必須ですが、ここには分かりやすい説明文を入力します。私の場合、SQL Server 2016 への接続のため 'SQL Server 2016' と設定しました。(figure 1 参照)

step1_ja.png
figure 1 - 接続プロファイルの選択

Step 2. ドライバー定義 (テンプレート) の選択

事前定義済みテンプレートをもとに、ドライバーの定義を作成します。(figure 2 を参照)

step2_ja.png
figure 2 - 新しいドライバーの定義

ドライバー・タイプとドライバー名は両方とも必須項目です。ドライバー・タイプの一覧に SQL Server 2016 がないため、以前のバージョンのもので代用します。ただし、実際のところ、'Microsoft SQL Server 2012 JDBC Driver' および 'Microsoft SQL Server 2014 JDBC Driver' は一覧に表示されているにもかかわらず動作はしません。そのため、'Microsoft SQL Server 2008' を選択することになります (※これ重要)。

step3_ja.png
figure 3 - ドライバー設定のテンプレートの選択

Step 3. JDBC ドライバーの設定

デフォルトでは、レガシー・ドライバーである 'sqljdbc.jar' を使用するように設定されています。そのため、これを現行のドライバー、例えば 'sqljdbc42.jar' に置き換える必要があります。(figure 4 から figure 6 までを参照)

step4_ja.png
figure 4 - JDBC ドライバの選択 (途中経過)

step5_ja.png
f
igure 5 - 最適な JDBC ドライバーの選択

step6_ja.png
f
igure 6 - JDBC ドライバの選択 (完了)

Step 4. 接続プロファイルの設定

データベースへの接続に当たっては、対象のデータベースへの接続に必要なプロパティーを設定しなければなりません。SQL Server 認証を使用している場合は、それほど難しくはないでしょう。接続対象のデータベースはローカルでもリモートでも構いませんが、リモート接続の場合はパーソナル・ファイアウォールの設定に注意してください。また、リモート接続を用いる場合は、設定完了後に念のため接続テストを行うことをお勧めします。(figure 7 参照)

Note: Step 2 で SQL Server 2012 or 2014 を選択した場合、不思議なことに接続プロファイルの設定を行うことができません。

step7_ja.png
figure 7 - 接続プロパティーの設定

接続プロパティーを設定した後、そのサマリーが表示されます。接続プロパティーに誤りがないことを今一度確認して、[完了]ボタンをクリックしてください。これで設定は完了です。

step8_ja.png
f
igure 8 - 接続プロパティーの確認

Step 5. SQL Server 2016 への接続

すべての設定が完了したら、Eclipse DTP から SQL Server 2016 へ接続できるようになります。

Note: Eclispe DTP はすべての DBA 操作をサポートしているわけではないため、DBA は主に Microsoft SQL Server Management Studio (SSMS) を使用することになります。

step9_ja.png
figure 9 - Eclipse DTP から SQL Server 2016 へ接続

3. 関連リンク

How to connect to SQL Server 2016 by Eclipse DTP

I'd like to introduce how to connect to SQL Server 2016 by Eclipse Data Tools Platform (Eclipse DTP).

Eclipse DTP is a plug-in module for connecting and manipulating to databases on Eclipse IDE. Several package of Eclipse Neon (e.g. Eclipse Java EE Developer) includes Eclipse DTP and we use it immediately. For ease to set up to connect databases, Eclipse DTP provides setting templates adapt to some databases, e.g. Oracle, SQL Server, DB2, etc. Then I tried to connect to SQL Server 2016, but it needs additional settings described by this entry.

1. Requirements

  • Microsoft SQL Server 2016 (Standard, Enterprise or Developer Edition) with login user(s) authenticated by SQL Server (not Windows Integrated Authentication)
  • Eclipse DTP 1.3 (Neon.3) -- it's included by Java EE Developers, etc.
  • Microsoft JDBC Driver 4.0 or later (the latest version is 6.0), installed the same host with Eclipse

2. How to set up

Step 1. Create a new Connection Profile for SQL Server 2016

Create a new connection then choose 'SQL Server' from the list of Connection Profile Types. It's required to set 'Name' as the description. In this case, I set it 'SQL Server 2016' because of connection to SQL Server 2016. (see figure 1)

step1_en.png
f
igure 1 - Choose Connection Profile Type

Step 2. Specify a Driver definition

Create a driver definition based on one of prepared templates. (figure 2)

step2_en.png
f
igure 2 - New Driver Definition - Create New

It's required both a driver type (template) and a driver name (definition name). There is not for SQL Server 2016 so need to choose alternate one. Tell the truth, 'Microsoft SQL Server 2012 JDBC Driver' and 'Microsoft SQL Server 2014 JDBC Driver' are not worked however their are listed. So I chose 'Microsoft SQL Server 2008' instead of them.

step3_en.png
figure 3 - Specify a Driver Template

Step 3. Choose suitable JDBC driver

In the default, it uses 'sqljdbc.jar' that is legacy JDBC driver. Thus I needed to replace it to suitable JDBC drivers, e.g. 'sqljdbc42.jar'. (figure 4, figure 5 and figure 6)

step4_en.png
figure 4 - Specify a Driver (incomplete)

step5_en.png
figure 5 - Select suitable JDBC driver

step6_en.png
figure 6 - Specify a Driver (complete)

Step 4. Set connection properties

Set connection properties required the target database. If using SQL Authentication, this step is so easy. The target database may be hosted on both local or remote. If it's a remote database, be attention to personal firewall settings, and I recommended to test connection. (figure 7)

Note: In case of choose SQL Server 2012 or 2014 in step 2, it's funny that we cannot set connection properties.

step7_en.png
figure 7 - Specify connection properties

After setting connection properties, view the summary of it and verify the items. If there are no problem, Click [Finish] to commit.

step8_en.png
figure 8 - Summary of connection properties

Step 5. Connect to SQL Server 2016.

If the settings is complete, enable to connect to SQL Server 2016 by Eclipse DTP.

Note: Eclispe DTP does not provide DBA operations completely. So you should also use Microsoft SQL Server Management Studio (SSMS) if you need to operate as DBA.

step9_en.png
figure 9 - Connect to SQL Server by Eclipse DTP

3. Relational Links

Payara Quick Start Guide

This article is revised and English transleted of the post 3rd December 2016.

Recently, Payara users are growing near by me. Most of them migrate from GlassFish, but it's certainly that Payara is the first Java EE server for someone. Then I note minimum instruction for using Payara.

0. Requirements

0.1. JDK

Payara is required JDK 7, or JDK 8 Update 20 or later. About JDK's set up is omitted because it's dependent with target OS. But I suggest to use the newest as possible. Remember setting path to JVM (java / java.exe). Attention: Payara ignores JAVA_HOME environment variable.

0.2. Network settings

In case of some OS, almost listen ports are closed in default. If your environment is such a thing, you need to add a settings of listen ports. Payara listens mainly TCP 4848, 8080 and 8181 ports. In addition to enable Hazelcast, you need to open 5900 and later ports (maximum 5999). Note: To use Payara Micro, Hazelcast is enabled in default.

1. Instruction of development environment

1.1. Downloading Payara Server

Download Payara Server from http://www.payara.fish/downloads (If you need Multi-Language edition, Access to http://www.payara.fish/all_downloads). When to download, you don't any registrations. Even if you use Payara Micro as operation, it's easy to develop applications on Payara Server.

In case of Payara 4.1.1.171.1 (latest release at the time), you may select following one;

  • Payara 4.1.1.171.1 (Full) : payara-4.1.1.171.1.zip
  • Payara-Web 4.1.1.171.1 (Web Profile) : payara-web-4.1.1.171.1.zip
  • Payara-ML 4.1.1.171.1 (Multi-Language Full) : payara-ml-4.1.1.171.1.zip
  • Payara-Web-ML 4.1.1.171.1 (Multi-Language Web Profile) : payara-web-ml-4.1.1.171.1.zip

I suggest you may select Full Platform i.e. payara-4.1.1.171.1.zip for development. If you need Web Profile (e.g. planning to use Payara Micro in operation), restricted by Maven dependency (javax:javax-ee-web:7.0).

1.2. Installation of Payara Server

Extract payara-4.1.1.171.1.zip to any directory. But on Windows, avoid to the directory it's named spaces (e.g. C:\Program Files). If you are an administrator of the computer, extract to C:\ (on Windows) or /opt (on Linux/Solaris) for ease. Then Payara Server installed on C:\payara41 (on Windows) or /opt/payara41 (on Linux/Solaris).

If you're not an administrator, it may extract to %USERPROFILE% (C:\Users\username) on Windows or $HOME (/export/home/username or /home/username) on Linux/Solaris.

1.3. IDE Settings for Payara Server

Payara Server is controlled by major IDEs with some settings.

1.3.1. Eclipse

In case of Eclipse , you should GlassFish Tools contained in Oracle Enterprise Pack for Eclipse (OEPE) (It's no problem to contain other plugins of OEPE). Choose GlassFish 4 for server type, and input C:\payara41\glassfish (Windows) or /opt/payara41/glassfish (Linux/Solaris) for installed directory. Pay attention to setting it glassfish directory that is a sub directory of Payara's install directory. (There's Nucleus, the core modules of Payara) Other choices may be still in defaults.

You may also obtain GlassFish Tools from Eclipse Marketplace.

1.3.2. NetBeans

NetBeans can integrate with GlassFish using a built in feature. Add a server instance in Service - Servers. Choose GlassFish Server as server type, and input C:\payara41 (Windows) or /opt/payara41 (Linux/Solaris) as installed directory. Other choices may be still in defaults. Note: NetBeans can download a server instance if not exists. But it never use for Payara because it will download GlassFish.

1.3.3. IntelliJ IDEA

IntelliJ IDEA can integrate with GlassFish using a built in feature. At first, choice Glassfish Server on Default Settings -> Build, Execution, Deployment -> Application Servers. And then required Glassfish Home directory, input C:\payara41 (Windows) or /opt/payara41 (Linux/Solaris). Other choices may be still in defaults.

1.4. Using Payara Server as development environment

Payara Server in development is usually started, stopped and deployed from IDE. Thus you may know following three operations for Payara Server.

  • payara41/bin/asadmin start-domain to start Payar Server
  • payara41/bin/asadmin stop-domain to stop Payara Server
  • Using admin console http://localhost:4848/ to operate Payara Server during Payara Server is running

Payara's admin console is such a Web UI;

payara-admingui-top.png
figure 1 - Payara Server Console (Dev.)

2. Instruction of operating envirionment

2.1. Downloading Payara Server

Download Payara Server from http://www.payara.fish/downloads as same as instruction of developing envirionment.

In case of Payara 4.1.1.171.1 (latest release at the time), you may select following one;

  • Payara 4.1.1.171.1 (Full) : payara-4.1.1.171.1.zip
  • Payara-Web 4.1.1.171.1 (Web Profile) : payara-web-4.1.1.171.1.zip
  • Payara-ML 4.1.1.171.1 (Multi-Language Full) : payara-ml-4.1.1.171.1.zip
  • Payara-Web-ML 4.1.1.171.1 (Multi-Language Web Profile) : payara-web-ml-4.1.1.171.1.zip

In case of operating environment, you should select to install either Full Platform or Web Profile. For many purposes, Web Profile is better. If you want to use APIs without Web Profile, you need to install Full Platform.

See also following slides about Web Profile.

It's easy to operate Payara Server using mainly admin console. You may use localized admin console to convenient. Then you may install Web Profile Multi-language : payara-ml-4.1.1.171.1.zip.

Tips: When you post an issue in trouble, it's precondition to use English UI. Thus I suggest you also prepare English version for reproducing tests.

2.2. Installation of Payara Server

Extract payara-4.1.1.171.1.zip to any directory. But on Windows, avoid to the directory it's named spaces (e.g. C:\Program Files). If you are an administrator of the computer, extract to C:\ (on Windows) or /opt (on Linux/Solaris) for ease. Then Payara Server installed on C:\payara41 (on Windows) or /opt/payara41 (on Linux/Solaris).

2.3. Enable to remote access to Payara Server

2.3.1. Setting the admin password

Payara is not set the admin pasword in default. It's mean that remote access to Payara Server is disabled in default. Then, at first, you should set the admin password. Use asadmin change-admin password command to set the admin password. see follows;

C:\payara41\bin>asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password>
Enter the new admin password>
Enter the new admin password again>
Command change-admin-password executed successfully.

asadmin change-admin-password command works two tasks, (1) set admin user name, (2) set or change admin password. The input is following items;

  1. admin user name: If use 'admin', you may empty this item
  2. the admin password: current password; In default, it must set empty because the default admin password is empty
  3. the new admin password: input the password
  4. the new admin password again: input the password again

Attention: The first item is admin user name (not password), don't miss.

2.3.2. Enable secure administration

Payara rejects remote access via HTTP (plain text), so you should enable secure administration (remote access via HTTPS). To enable or disable secure administration is needed to run Payara Server, you start to use asadmin start-domain command.

Then you enable secure administration using asadmin enable-secure-admin command. the command requires admin user name and password. because you should set the admin password the previous step.

C:\payara41\bin>asadmin enable-secure-admin
Enter admin user name>  admin
Enter admin password for user "admin">
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

After secure administration is enabled, you have to reboot Payara Server. You may use convenient command, asadmin restart-domain.

To enable and disable secure administration is also supported by admin console. But Web browser maybe disabled on Payara Server's machine. So I suggest to use command line.

2.4. Using Payara Server as operating envirionment

It's easest that (1) Start to asadmin start-domain command, (2) Stop to asadmin stop-domain command, (3) Other operations are on admin console. Admin console URL via remote access is https://<hostname>:4848/ and require 'User Name' (admin user name, 'admin' in default) and 'Password' (the admin password).

payara-admingui-login.png
figure 2 - Payara Server Log-in (Admin Console)

Set enable-secure-admin when to enable remote access. It means that you access to admin console via HTTPS (HTTP over SSL/TLS) instead of HTTP and using encrypted connection. (To access to admin console is restricted via HTTPS since GlassFish 3.1.2?) Web browsers will block to access admin console once because key store of Payara Server is not ready. But even if it's in intranet, you can ignore and force access to admin console.

payara-admingui-top.png
figure 3 - Payara Server Console (Ops.)

3. Starting up Payara Micro

3.1. Downloading Payara Micro

3.1.1. Download from the Web site

Download Payara Micro 171 (payara-micro-4.1.1.171.1.jar) from http://www.payara.fish/downloads (If need, you may change the file name to any).

3.1.2. Maven integration

Add dependencies to pom.xml in a Maven Project as following. Then Payara Micro is downloaded automatically from Maven Central Repository.

<dependencies>
  <groupId>fish.payara.extras</groupId>
  <artifactId>payara-micro</artifactId>
  <version>4.1.1.171.1</version>
</dependencies>

3.2. Using Payara Micro as operating environment

3.2.1. Run Payara Micro

At first, prepare a WAR file of Web application; webapp.war. Basically you develop a Web application using Payara Server even if you run it on Payara Micro.

And then, run Payara Micro on a terminal.

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war

Ctrl + C to exit.

Payara Micro is enabled Hazelcast clustering in default. (Payara Server is disabled in default) Usually it need not change. If you set with --noCluster option to disable Hazelcast clustering and start up first such a little. But --noCluster option stops whole of Hazelcast, it's disabled not only automatic clustering but also JCache.

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war --noCluster

3.2.2. Create Uber Jar and run

You can create Uber Jar (webapp.jar) from Payara Micro and WAR files.

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war --packageUberJar webapp.jar

After create Uber Jar, you run it directly.

java -jar webapp.jar

Uber Jar is Payara Micro includes WAR files. You may use various options of Payara Micro, and Ctrl + C to exit.

4. Conclusion

Payara is growing day by day. Recently it is not only "well-maintained GlassFish" but also fitting for commertial use. Now it's features are so many and powerful, but it's minimal instruction to use is kept simple. I wish Payara is used many people -- from newbies to experts.

Payara クイック・スタート・ガイド

この記事は、2016 年 12 月 3 日の「Payara クイック・スタート・ガイド」の改訂版です。

最近、私の周りで Payara ユーザーが増えてきました。その多くは GlassFish から移行してきた方々ですが、今後 Payara が最初の Java EE サーバーとなる方々も出てくるかと思います。そういった方々に向けて、Payara の実用レベルで最低限のセットアップをまとめておきます。

0. 事前準備

0.1. JDK

Payara を動作させるには JDK 7 または JDK 8 Update 20 以降が必要です。OS によってセットアップ手順が異なるため割愛しますが、できるだけ新しい Update を使用することをおすすめします。なお、JVM (java / java.exe) へのパスはあらかじめ設定しておいてください (注意: Payara は JAVA_HOME 環境変数を参照しません)。

0.2. ネットワーク設定

いくつかの OS では既定でほとんどのポートの受信を拒否するよう設定されています。これらの OS では、Payara で使用する TCP ポートの受信を許可するよう設定変更が必要です。Payara が使用する主なポートは、TCP 4848、8080、8181 です。Hazelcast を有効にする場合 (Payara Micro の場合は必須) はそれに加えて 5900 以降 (最大 5999) を空けておきます。

1. 開発環境向けスタートアップ・ガイド

1.1. Payara Server をダウンロードする

Payara Server をダウンロードします。http://www.payara.fish/downloads (多国語化版が欲しい場合は http://www.payara.fish/all_downloads) から無償で入手できます。ユーザー登録なども必要ありません。運用環境として Payara Micro を使用する場合でも、開発環境での作業は Payara Server で行った方が便利です。

Payara 4.1.1.171.1 (本稿執筆時点の最新版) の場合、基本的には以下のいずれかを選択することになります。

  • Payara 4.1.1.171.1 (Full) : payara-4.1.1.171.1.zip
  • Payara-Web 4.1.1.171.1 (Web Profile) : payara-web-4.1.1.171.1.zip
  • Payara-ML 4.1.1.171.1 (Multi-Language Full) : payara-ml-4.1.1.171.1.zip
  • Payara-Web-ML 4.1.1.171.1 (Multi-Language Web Profile) : payara-web-ml-4.1.1.171.1.zip

開発環境の場合は Full Platform の payara-4.1.1.171.1.zip を選択すると良いでしょう。必要に応じて (例えば、Payara Micro での運用を想定している場合など)、Maven の依存関係で javax:javax-ee-web:7.0 を設定して使用可能な API を Java EE Web Profile に制限する方法を採るのが現実的です。

1.2. Payara Server をインストールする

ダウンロードした payara-4.1.1.171.1.zip を展開します。展開先は自由に選べます (ただし Windows 環境では C:\Program Files などスペース入りのフォルダは避けた方が無難です)。管理者権限がある場合は、Windows では C:\ 以下に、Linux/Solaris では /opt 以下にそれぞれ展開すると分かりやすいです。展開後、Windows では C:\payara41 以下、Linux/Solaris では /opt/payara41 以下に Payara Server が配置されます。この状態でインストールは完了です。

管理者権限を持たない場合は、Windows では %USERPROFILE% (C:\Users\{ユーザー名}) 以下、Linux/Solaris では $HOME (/export/home/{ユーザー名} または /home/{ユーザー名}) 以下にそれぞれ展開すると良いでしょう。

1.3. IDE で Payara Server の設定を行う

Payara Server を IDE で制御できるように設定します。

1.3.1. Eclipse

Eclipse の場合は、Oracle Enterprise Pack for Eclipse (OEPE) に含まれる GlassFish Tools をインストールする必要があります (OEPE の他のプラグインが含まれていても問題ありません)。サーバーの種類として GlassFish 4 を選択し、サーバーのインストール先として C:\payara41\glassfish (Windows) または /opt/payara41/glassfish (Linux/Solaris) を選択します。Payara のインストール・ディレクトリ以下の glassfish サブディレクトリ (この場所が Payara のコアである Nucleus になります) まで指定する必要があることに注意してください。その他の設定項目は、既定値のままで良いでしょう。

なお、GlassFish Tools は Eclipse Marketplace からも入手することができます。

1.3.2. NetBeans

NetBeans には GlassFish との統合機能が含まれているため、これを利用します。サービス - サーバー画面で、サーバー・インスタンスを追加します。サーバーの種類として GlassFish Server を選択し、サーバーのインストール先として C:\payara41 (Windows) または /opt/payara41 (Linux/Solaris) を入力します。その他の設定項目は、既定値のままで良いでしょう。なお、NetBeans にはサーバー・インスタンスがない場合にダウンロードしてインストールする機能も備わっていますが、Payara の場合には使用できません (GlassFish がダウンロードされるため)。

1.3.3. IntelliJ IDEA

IntelliJ IDEA には GlassFish との統合機能が含まれているため、これを利用します。Default Settings -> Build, Execution, Deployment -> Application Servers で Glassfish Server を選択します。Glassfish Home ディレクトリをたずねられますので、C:\payara41 (Windows) または /opt/payara41 (Linux/Solaris) を入力します。その他の設定項目は、既定値のままで良いでしょう。

1.4. Payara Server を開発環境として使用する

開発環境の Payara Server は、通常 IDE から起動、停止およびアプリケーションのデプロイを行います。Payara Server の直接操作については、以下の 3 点を押さえておけば大丈夫でしょう。

  • payara41/bin/asadmin start-domain で Payar Server を起動
  • payara41/bin/asadmin stop-domain で Payara Server を停止
  • Payara Server の起動中は管理コンソール http://localhost:4848/ で大抵の設定操作は可能

Payara の管理コンソールは、以下のような Web UI となっています (英語版 UI)。

payara-admingui-top.png
figure 1 - Payara Server Console (Dev.)

2. 運用環境向けスタートアップ・ガイド

2.1. Payara Server をダウンロードする

Payara Server をダウンロードします。手順は開発環境の場合と同じです。Payara 4.1.1.171.1 の場合、基本的には以下のいずれかを選択することになります。

  • Payara 4.1.1.171.1 (Full) : payara-4.1.1.171.1.zip
  • Payara-Web 4.1.1.171.1 (Web Profile) : payara-web-4.1.1.171.1.zip
  • Payara-ML 4.1.1.171.1 (Multi-Language Full) : payara-ml-4.1.1.171.1.zip
  • Payara-Web-ML 4.1.1.171.1 (Multi-Language Web Profile) : payara-web-ml-4.1.1.171.1.zip

運用環境の場合は、まず Full Platform と Web Profile のどちらをインストールするかの判断が必要です。多くの用途では Web Profile が第一選択肢となるでしょう。Web Profile にない API が必要であれば Full Platform をインストールします。

Web Profile については以下の資料をしてください。

Payara Server の設定操作は管理コンソールを中心に行うのが便利です。その際、日本語化された UI は使い勝手が良いため、多国語版 Web Profile : payara-ml-4.1.1.171.1.zip を選択しても良いでしょう。

ただし、トラブル発生時の Issue は英語版 UI での利用が前提であるため、再現テストのために英語版 Web Profile 環境を別途用意しておくと安心です。

2.2. Payara Server をインストールする

ダウンロードした Payara Server の ZIP アーカイブ (payara-ml-4.1.1.171.1.zip など) を展開します。展開先は自由に選べます (ただし Windows 環境では C:\Program Files などスペース入りのフォルダは避けた方が無難です)。管理者権限がある場合は、Windows では C:\ 以下に、Linux/Solaris では /opt 以下にそれぞれ展開すると分かりやすいです。展開後、Windows では C:\payara41 以下、Linux/Solaris では /opt/payara41 以下に Payara Server が配置されます。この状態でインストールは完了です。

2.3. Payara Server のリモートアクセスを有効にする

2.3.1. 管理パスワードの設定

Payara の既定では、管理パスワードが設定されていません。リモートアクセスを有効にするのに先立って、まず管理パスワードを設定する必要があります。管理パスワードの設定には asadmin change-admin-password コマンドを使用します。

C:\payara41\bin>asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password>
Enter the new admin password>
Enter the new admin password again>
Command change-admin-password executed successfully.

ここでは、管理ユーザー名の決定と、管理パスワードの変更という 2 種類の操作を行います。入力項目は、以下の通りです。

  1. 管理ユーザー名: 既定の admin を使用する場合は空欄とします
  2. 現在の管理パスワード: 既定では管理パスワードは設定されていないため空欄とします
  3. 新しい管理パスワード: 管理パスワードを入力します
  4. 新しい管理パスワード: 入力した管理パスワードと同じものを確認のため入力します

最初に管理ユーザー名の設定があります。ここは見落としがちのため注意してください。

2.3.2. セキュア管理の有効化

リモートアクセスのためにセキュア管理 (HTTPS 通信) を有効化します。セキュア管理の有効化/無効化は Payara Server が起動している必要があるため、まず asadmin start-domain コマンドで Payara Server を起動します。

続いて、asadmin enable-secure-admin コマンドでセキュア管理を有効化します。その際には、先に設定した管理ユーザー名 (admin) と管理パスワードを入力する必要があります。

C:\payara41\bin>asadmin enable-secure-admin
Enter admin user name>  admin
Enter admin password for user "admin">
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

セキュア管理を有効化した後は、Payara Server を再起動する必要があります。Payara Server の停止と起動を組み合わせても良いのですが、再起動を行う asadmin restart-domain コマンドを使用した方が高速です。

セキュア管理の有効化/無効化は管理コンソールでも操作できますが、Payara Server のインストール先が必ずしも Web ブラウザを備えているとは限らないため、コマンドラインから管理パスワードと同時に設定を行った方が無難です。

2.4. Payara Server を運用環境として使用する

手っ取り早い方法は、起動コマンドの asadmin start-domain と停止コマンドの asadmin stop-domain だけ覚えて、後の操作は管理コンソール上で行うことです。リモートアクセス時の管理コンソールの URL は https://<hostname>:4848/ となり、起動時にユーザー名 & パスワードの認証があります (ユーザー名は既定では admin となります)。

payara-admingui-login.png
figure 2 - Payara Server Log-in (Admin Console)

リモートアクセスを有効にする際に、enable-secure-admin を設定していますが、これにより管理コンソールへのアクセスが HTTP から HTTPS (HTTP over SSL/TLS) に変更され、暗号化通信となります (GlassFish 3.1.2 あたりから管理コンソールへのリモートアクセスは HTTPS に限定されるようになっています)。Payara Server のインストール直後は電子証明書のチェーンが整備されていないため、ブラウザ側で一旦アクセスをブロックされますが、イントラネット上であるため無視してアクセスを強行してください。その後、Payara の管理コンソールにアクセスできるようになります。

payara-admingui-top.png
figure 3 - Payara Server Console (Ops.)

3. Payara Micro スタートアップ・ガイド

3.1. Payara Micro をダウンロードする

3.1.1. Web サイトからのダウンロード

http://www.payara.fish/downloads から Payara Micro 171 (payara-micro-4.1.1.171.1.jar) をダウンロードします。ダウンロード後、ファイル名は必要に応じて変更しても構いません。

3.1.2. Maven 統合

Maven プロジェクトの pom.xml に以下の依存関係記述を追加します。これにより、Maven Central Repository から Payara Micro が自動的にダウンロードされ、プロジェクトに組み込まれます。

<dependencies>
  <groupId>fish.payara.extras</groupId>
  <artifactId>payara-micro</artifactId>
  <version>4.1.1.171.1</version>
</dependencies>

3.2. Payara Micro を運用環境として使用する

3.2.1. Payara Micro を通常実行する

まず、Web アプリケーションの WAR ファイルを用意します。ここでは WAR ファイルを webapp.war と仮定します。Web アプリケーションは基本的に Payara Server を使って開発することになるでしょう。

WAR ファイルが準備できたら、ターミナルから Payara Micro を起動します。

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war

終了する場合は Ctrl + C を使います。

Payara Micro は既定で Hazelcast による自動クラスタリングが有効になっています (Payara Server では無効)。通常はそのままでも問題ありませんが、--noCluster オプションを付けて無効化することで、少しだけ起動を早めることができます。ただし、--noCluster オプションを使用すると、Hazelcast そのものが無効化されるため、自動クラスタリングだけでなく JCache も使えなくなってしまうことに注意してください。

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war --noCluster

3.2.2. Uber Jar を作成して実行する

Payara Micro と WAR ファイルから Uber Jar を作成することもできます。ここでは、出力する Uber Jar の名前を webapp.jar と仮定します。

$ java -jar payara-micro-4.1.1.171.1.jar --deploy webapp.war --packageUberJar webapp.jar

作成後は、直接 Uber Jar を実行することになります。

java -jar webapp.jar

Payara Micro の Uber Jar は、実際には WAR ファイルを内包した Payara Micro です。Payara Micro の起動時オプションが使用できるほか、Ctrl + C で終了できる点も共通しています。

4. まとめ

Payara は日々進化を続けており、当初の「より良い GlassFish」から、本格的な商用 Java EE サーバーとなるべく様々な機能が追加されています。しかし、最小限の設定は決して多くなく、今回ご紹介した内容をもとに簡単な環境構築は可能です。