手持ちのモバイルノート「VivoBook E203NA-464G」をさらに活用したくて、Java EEの開発環境をインストールして動かしてみることにしました。
今回の記事では、開発環境をインストールして、ブラウザに「morimori」の文字が表示されたらいいや、という所までやってみました。
とは言うもののこれ、マイクロソフトのVisual Studio Communityと比べてしまうと中々敷居が高かったです。
■開発環境は「Pleiades All in One Eclipse」
まず開発環境ですが、「これだけで日本語の環境でもってJava EE開発が出来る」という、「Pleiades All in One Eclipse」を選んでみました。
その中でも、Windows 64bit > Java > Full Editionをダウンロードしてみました。
.zipファイルをダウンロードした後は解凍するわけですが、15460個ものファイルを解凍しないとならないため、VivoBook E203NA-464Gの処理能力では相当な時間がかかりました。
どのくらいの時間か・・・というか、早朝に外出前に解凍を開始して放置し、午後帰宅したら完了してた・・・くらいの時間感覚ですね。
ちなみに、少しでも解凍のパスが長いと途中でエラーになってしまうというトラップがあります。
結局、メモリカードのDドライブの直下に持って行って解凍しました。
eMMC(Cドライブ)は容量が心配なので、遥かにアクセス速度の遅いメモリカード(Dドライブ)で1万5000個も解凍してるわけで、これも時間がかかった原因ですね。
ちなみに、逆にVisual Studio Communityよりも遥かに敷居が低いのは、開発を好きなドライブで簡単に出来る点です。
解凍されたフォルダ「pleiades」を、単純にDドライブの直下とかに持っていくだけ。
その中のeclipse > eclipse.exeを実行するだけで、すっかり日本語化されたIDEのeclipseが起動してくれるので「おお!」ってなりますね。
■Mavenプロジェクトで開発開始
いよいよ開発開始なのですが、開発用のWebサーバーには「tomcat9」を、Java EEのフレームワークにはJava EEに標準で含まれる「JSF」でやりたいわけです。
プロジェクトは「Maven(メイヴェン=読み方は他にもメイヴンとか色々あるみたい)」を選択します。
MavenはJava用のプロジェクト管理ツールなんですが、マイクロソフト系で言うところの「新規プロジェクト」という理解でも良いはず。
「シンプルなプロジェクトの作成」を選んで進み、必要なグループIDやアーティファクトID(いわゆるプロジェクト名=今回はmoriJava001)を決めて先に進んでいくと、Mavenプロジェクトのルールに従って必要なフォルダ構造が作られていきます。
Mavenでも分かる通り、Java開発は、数多くのプラグインやツールの巨大な集合体になるので、マイクロソフト系技術から見ると、こまめに名前が付いて来るのも面白い所かも知れないですね。
ビルド・パスの設定をするのですが、初期状態だと、Javaの実行環境であるJREのシステムライブラリーのバージョンが1.5になってるんですね。
ここはJava 8か9にしようかな・・・と思ったら、今はもうJava 10が出ているのでそれに変更しました。
最初の大きなポイントが「プロジェクト・ファセット」の設定ですね。
ここで、動的Webモジュール、ランタイムtomcat9(Java10)、JSF 2.2などを設定しないと話が進まなくなります。
ただ設定するだけでなく、バージョンも最大のものにしてあげる必要があります。
■手動でファイルの追加と書き換え!!
マイクロソフト系技術と様相が違って来るのがこのあたりから。
自分のプロジェクトに手動でファイルを作成して追加してあげないといけないです。
まずは、/WebContent/WEB-INFの下に、beans.xmlというファイルを追加して中身を上記のようにしないといけないです。
元々ある/WebContent/WEB-INF/web.xmlを上記のように編集しました。
url-patternや名前は自分の環境に合わせて読み替えが必要です。
さらに、tomcat9(Java10)サーバーを使えるようにすると、プロジェクト・エクスプローラで見ると「Servers」というフォルダが作られます。
この中のcontext.xmlにResourceタグを追加しなければならないという・・・。
ネットで調べながらここまで来たけど、さらに、pom.xmlを上記のように修正しなければならないのです。
pom.xmlは、最初は「なんやねんそれは」ってなると思うのですが、これこそがMavenプロジェクトの威力と呼べる仕組みで、プロジェクトをビルドした時などに、ここに書かれたライブラリを、自動で(!!)「Mavenセントラルリポジトリ」というサイトに接続してダウンロード・設定してくれる優れものです。
dependenciesタグの中に、dependencyタグが沢山並んでいるのですが、この一つ一つが、「もしも、ここに書かれたライブラリが不足しているのならば、Mavenセントラルリポジトリに接続して、ダウンロードして、自分のプロジェクトに組み込んでおくれ」という内容になっています。
■さらにライブラリを手動で追加!!
実はまだ終わりではなく、pom.xmlで足りないライブラリを自動ダウンロード&設定してくれる!!と言った舌の根も乾かないうちから何なんですが、自動じゃ入らなくて、手動でダウンロードして来て、手動で/WebContent/WEB-INF/libに追加しないといけないライブラリがあるのです。
むひゃー。
jsf-impl (jsf-impl-2.2.9.jar)
http://central.maven.org/maven2/com/sun/faces/jsf-impl/2.2.9/
というライブラリと
jsf-api(jsf-api-2.2.9.jar)
http://central.maven.org/maven2/com/sun/faces/jsf-api/2.2.9/
というライブラリです。
これを入れていないと、JSFの画面(xxxx.xhtml)が、JSFのエンジンに無視されてしまい、404(file not found)エラーから脱出できずにハマってしまう事になります。
むひゃー(2回目)・・・。
■ようやく、morimori表示!!
JSFって、/WebContent/の下がWebコンテンツを置く場所になっているので、とりあえずこの直下に、ただ単に「morimori」とだけ文字を表示するだけの画面(form001.xhtml)を設置します。
これで実行!!
ここまでやって、ようやく、「morimori」という文字がブラウザに表示されました。
ASPとかASP.NETと比較すると、素直に「かなり敷居が高いよなぁ」と思えてしまいますが、逆にマイクロソフトが凄すぎるだけとも言えるかも。
それはともかく、低価格モバイルノートパソコンのVivoBook E203NA-464Gでも、こうやって、ASP.NET MVCの開発、JSFの開発、どっちも出来るようになったので嬉しさ大爆発です!!