Eclipse(Neon)にWildFlyを登録するには
メインページ>コンピュータの部屋#Java>Java Tips
JavaEE用のオープンソースのサーバとしては、Glassfish や TOMEE 等がありますが、
JBOSS の Wildfly も JavEE7 に対応していてなかなか使えそうです。
この記事では、Eclipse(Neon)に WildFly10.1を登録する手順を説明します。ちょっとした落とし穴があります。
目次
WildFlyのインストール
WildFly はここからZipを落として適当なフォルダに解凍してください。
後述するように、10.1 は Eclipse4.6(Neon)と相性が良くないようです。「WildFly10 を[サーバー]に登録」で後述しますが
WTPでサーバの登録を行う際、10.1 がないので強引に 10.0 として登録することは可能ですが、「追記 2016.9.06」で後述するようにうまくうごきません。
10.0 をインストールしてください。
JBoss Open Shift 3 Tools のインストール
Eclipse(Neon)では新規作成ダイアログで、[サーバー]→[サーバー]に [WildFly 10.0] がありますので、 WildFly は、簡単に登録できそうに思えます。
実はこれをすぐに使ってはいけません。 これは落とし穴、巧妙な罠なのです(^^;
これを使うとWildFly10をEclipseの[サーバー]ビューに登録することができますが、Webサーバのランタイムの一覧には何も追加されず サーバーの起動もできません。
これではまずいので、最初は [WildFly 10.0] を使わず、まず、[JBoss Open Shift3 Tools] を選んでインストールしてください。 [JBoss Open Shift3 Tools] を選んで[次へ]を押し、あとは指示に従えばOKです。
Eclipseの右下にインストール状況が出てきますがそれなりに時間がかかります。 ゆっくり終わるのを待ちましょう。
終わったら Eclipseを再起動してください。
WildFly10 を[サーバー]に登録
[JBoss Open Shift3 Tools]のインストールが完了すると、新規作成の[サーバー]→[サーバー]から [JBoss Open Shift3 Tools]が消え、Wildfly等の JBOSS関連のサーバが正常にEclipseに登録できるようになります。
新規サーバとして WildFly を Eclipseに登録するには、新規作成の[サーバー]→[サーバー]から WildFly10.0 を選んでください。
[次へ]を押すと以下の画面になります。
特に何か入力したり変更したりすることはないと思います。 そのまま[次へ]を押すと以下の画面になります。
ここで、[ホームディレクトリ]に WilfFlyをインストールしたフォルダを入力してください。
実行環境は、通常インストールしてある JDK が候補として自動入力されますが、 必要があれば変えてください。
ここで[完了]ボタンを押せば作業は全て終了です。[サーバー]ビューに WildFly が追加されていること、 [ウィンドウ]→[設定]→[サーバー]→[ランタイム環境] に WildFly が追加されていることを確認してみてください。
以上で完了です。お疲れ様でした。
その他注意事項
Eclipseで [サーバー]ビューのWildFlyにプロジェクトを追加すると、Webアプリケーションが WildFlyに配備されますが、 Webアプリケーションのコンテキスト名は、プロジェクト名ではなく、登録される WARファイルの名前から .war を削ったものになります。
例えば mavenプロジェクトを登録すると プロジェクト名-0.0.1-SNAPSHOT などとなります。
Eclipseで RunAs などで xhtmlファイルを実行するとき、Eclipseが自動的に決めるコンテキスト名とは異なりますので 注意してください。
コンソールビューでWildFlyのログ出力を眺めていると、 どんなコンテキスト名でWebアプリが登録されたかわかりますので、追加時よく注視しておくのが良いでしょう。
追記 2016.8.28(重要)
問題点
上手くいったと思っていたのですが、WildFly を Neon の WTP で使うと、 WildFlyのランタイムをEclipseに登録することはできますが、 WildFlyのランタイムをプロジェクトへ追加することができないようです。
具体的には、[プロジェクト・ファセット]のダイアログでランタイムに WildFly10.1などと指定しても プロジェクトののビルドパスにWildFlyのランタイムが追加されません。
ビルドパスのライブラリダイアログでも確認できました。
従ってプロジェクトは JavaEE のライブラリが無いため、全くコンパイルできなくなってしまいます。 GlassFishのライブラリでコンパイルしたプロジェクトで試験していたので気が付きませんでした。
回避策
回避策は単純です。JavaEEのランタイムライブラリは Glassfish のものを採用するというだけです。 つまりGlassFishのインストールが必要です。
Glassfish4.1 サーバをインストールしておいて、Eclipseのサーバビューに登録し、 JavaEEのプロジェクトには[Glassfish System Library]を割り当てます。こうすればプロジェクトをビルドできます。
こうしてできたプロジェクトは、私の試験した範囲では WildFly10.0 で問題なく動くようです。
もしもっと簡単なあるいは筋の通った解決策があれば mailto:tknakamuri@gmail.com までご連絡をよろしくお願い致します。
追記 2016.9.06(重要)
問題点
Wildfly 10.1 を使うと JPA が正常に動作しません。原因が WTPなのか Wildfly なのかは未調査です。
回避策
とりあえず Neon(Pleiades All in One)では、 Wjildfly 10.0 を使えば、JPAに問題ありません。