読者です 読者をやめる 読者になる 読者になる

ひらおかゆみのなげやりブログ

もう、なげやりです…

Java EE SDKとGlassFish

これはGlassFish Advent Calendar 2014の23日目のエントリです。昨日は @kikutaro_ さんの「AWS Elastic BeanstalkでJava 8 & GlassFish 4.1!」でした。

 

1. Java EE SDKについて

GlassFishのことを書けと言われても、Surface Pro 3をセットアップした時、JavaFX向けに最小限の開発環境だけを作ったので、そもそもGlassFishをダウンロードしなければいけないし、Java EE 7のことはよくわかっていないからその勉強も必要です。

幸い、OracleではJava EE SDKというものを提供していて、私のようにこれからJava EEを勉強する人たちのためにドキュメント、サンプル、実行環境が提供されています。そしてJava EE SDK付属の実行環境がGlassFishというわけです。

Java EE SDKで勉強し、開発したアプリケーションをデプロイする本番環境用のGlassFishは、GlassFish公式サイトからダウンロードできます。

本番環境に使っていいのはWebLogicじゃないの?と思った方、たぶん勘違いされています。本番環境はGlassFishWebLogicのどちらでもOKです。Oracleは、OracleによるGlassFishの商用サポートは止めると言いましたが、GlassFishを本番環境で使ってはいけないとは一言も言っていませんし、http://www.payara.co.uk/ のような企業が商用サポートを提供することも認めています。私の勝手な想像ですが、GlassFishはコミュニティが育てていくもので(その中にはもちろんOracleも含まれます)、商用サポートもコミュニティが自発的に進めて欲しい―そのことをOracleは私たちに伝えたいのではないでしょうか?

脱線してしまったので話を戻します。Java EE SDKのダウンロードは、Java EE の概要から行える…はずなのですが、どこもリンク切れで私はたどりつけませんでした。仕方がないのでURLの階層上ったり工夫をしてみたら、何とJava EE 7のチュートリアル仕様書、関連ダウンロードへのリンクが小奇麗にまとまっているじゃないですか!(ただし全部英語)


Home: Java Platform, Enterprise Edition (Java EE) 7 Release 7

忘れないうちに手順をまとめておきます。

  1. リリース・ノート http://www.oracle.com/technetwork/java/javaee/documentation/javaee7sdk-readme-1957703.html
  2. Java EE SDKのダウンロード http://www.oracle.com/technetwork/java/javaee/downloads/index.html
  3. Java EE SDKのインストール手順 http://www.oracle.com/technetwork/java/javaee/documentation/javaee7sdk-install-1957708.html
  4. チュートリアル "Your First Cup" https://docs.oracle.com/javaee/7/firstcup/index.html
  5. Java EE 7 チュートリアル https://docs.oracle.com/javaee/7/tutorial/index.html

リリース・ノートによると、付属のサンプルは本番環境では使ってはいけないそうです。これはライセンス上の問題ではなく、わかりやすさ優先のためセキュリティとかガン無視しているからだそうです。

2. Hello, Java EE 7 SDK!

Java EE 7 SDKもFull版とWeb Profile版の2種類があります。今回私がダウンロードしたのはWeb Profile版です。本番環境向けGlassFish 4.1と比較したところ、SDKにはglassfish4フォルダ(ディレクトリ)下にいくつか追加されていました。

他は、特に変わっていないはずです。管理コンソールを起動して、コンポーネント一覧から確認してみます。

さて、管理コンソールはGlassFish 4.1では英語onlyになってしまいましたが、日本語化する方法はあるようなので、必要に応じてやればよいかと。さて、ダッシュボードの "Installed Components" をみると、本番環境用のGlassFishに加え、以下のコンポーネントが追加されていることがわかります。

さらに "Available Add-Ons" に表示される以下のコンポーネントがFull版のSDKに追加されているコンポーネントのはずです。

これらJava EE SDK特有のコンポーネントを除くと、GlassFishそのものです。少なくとも私には、これらの差分以外でJava EE SDKの実行環境と本番環境向けGlassFishの区別ができませんでした。

3. Java EE 7の道のりは長い

ここまで来ても、実はまだ準備段階のようです。チュートリアルやサンプルはMaven形式なので、それをEclipse(や他のIDE)にインポートしなければなりません。Web Profile版を選択したはずなのにそれでもチュートリアルやサンプルはたくさんあるし、最初の目標だったチュートリアルは完遂どころか着手すらままならない状態です(完全にJava EEの規模なめてました…)。さらにその先、GlassFishカーネルの話まで考えると気が遠くなりそうです。@btnrougeが目指していたものは、実はとんでもなく幅広く、さらに奥が深いものだと今更ながら気づきました。先日、@btnrougeと話した時、彼は2015年内にGlassFishカーネルの全ソースコードを読破すると言っていたのですが…私はちょっとついていけない。Java EE自体、すべての機能について自信を持って説明できる人は、世界中に数えるくらいしかいないと思います。

私は諸先輩方の背中を眺めながら、自分のペースで、JavaFXとは違うJavaとして、Java EEというものを追いかけてみようと思いました。

 

明日は @backpaper0 さん、明後日は @n_agetsu さんの予定です。

 

(あとがき)

このエントリを書いているとき、ちょっとわからないことがあって@btnrougeに電話したのですが、Java EE 7 SDKなんてダウンロードした試しがない的な発言が…そんなものですかね?