今まで主に統計や機械学習の話をしてきたはずが急に Java 開発の話です。
Java EE 7 ことはじめ
このあたりを読んでおけば良いみたいです。
The Java EE 7 Tutorial
http://docs.oracle.com/javaee/7/tutorial/doc/home.htm
Java(TM) EE 7 Specification APIs
http://docs.oracle.com/javaee/7/api/
JSR 342: JavaTM Platform, Enterprise Edition 7 (Java EE 7) Specification
https://jcp.org/en/jsr/detail?id=342
今から始める Java EE 7 解説セミナー
http://www.oracle.com/technetwork/jp/ondemand/index-2007743-ja.html
Beginning Java EE 6 GlassFish 3 で始めるエンタープライズ Java (Programmer’s SELECTION) [大型本]
http://www.amazon.co.jp/dp/4798124605
↑ 前のバージョンですが Java EE 7 でも十分使えます
概要はここに書いてあります。
http://www.oracle.com/technetwork/jp/java/javaee/overview/index.html
Java 開発環境を用意する
開発環境としては、利用する OS に関係なく Java SDK 、 NetBeans (GlassFish 含む) 、 Java EE 7 をそれぞれ落としてくれば良いです。
GlassFish のサーバー環境を整える
ローカルで開発するなら良いのですがデプロイサーバーを別に用意する場合は管理画面の設定が必要になります。
VERSION=4.0
TARGET=/opt/glassfish
cd $TARGET/$VERSION/glassfish/bin
# 管理者用のパスワードを設定する
sudo -u glassfish sh asadmin change-admin-password
# セキュリティを有効にする
sudo -u glassfish sh asadmin enable-secure-admin
これで 4848 ポートに接続して管理者ログインしたり、アプリケーションをデプロイできるようになります。
システムに後から Oracle JDK をインストールした場合、環境によっては java にパスが通っておらず GlassFish が起動しないことがあります。 asadmin を編集して java にパスを通すか環境変数 AS_JAVA に Oracle の Java のパスを指定します。
export AS_JAVA=/opt/java/jdk/current
IDE の環境を整える
普通のプログラマーなら Emacs (宗派によっては Vim) を使うと思いますが Java 開発においては IDE を使うのが多数派です。そこで NetBeans を使うわけですが一応 Emacs っぽいキーバインドもプリセットで用意されているため悶死せずに済みます。
IDE の設定は ~/.netbeans に保存されるのであらかじめどこかの計算機で環境を整備済みであればこのディレクトリを rsync するだけで環境を複製することができます。場合によっては git などで管理しても良いでしょう。
サンプルアプリケーションを開発する
Java のサンプルアプリケーションをこのあたりを参考にしながら手早く作ってみると良いでしょう。
http://www.slideshare.net/makingx/netbeansjavaee7-first-tutorial
Java を知らない世代が今からはじめる Java EE 開発
http://den2sn.hatenablog.com/entry/2012/12/19/001146
ステージング環境に Java アプリケーションをデプロイする
Java の世界ではビルドした結果が .war ファイルとして出来上がるのでこれをアプリケーションサーバーにデプロイすれば良いということになります。
ステージング環境としては Server JRE と GlassFish などのアプリケーションサーバーが最低限必要です。
手作業でデプロイしても良いのですが Jenkins でテストが通ったら自動デプロイするようにすると良いでしょう。
Apache と GlassFish を連携する
Java アプリケーションサーバーを Apache と連携するにはいくつかやりかたがあります。
プロダクト | 説明 |
---|---|
mod_proxy_http | 簡単、標準装備 |
mod_proxy_ajp | 少し速い、標準装備 |
mod_jk | 速い、歴史的経緯有り |
詳細は以下を見ると良いでしょう。
mod_proxy_http と mod_proxy_ajp と mod_jk
http://dev.ariel-networks.com/Members/inoue/tomcat-apache/
まとめ
Java EE 7 の開発を始めるにあたり必要な情報をまとめました。
Java の情報は日本語の情報を検索すると古い情報が混在したり、またスクリーンショットがベタベタ貼られた冗長な情報が出てくることが多いので、情報を厳選した上で参照する必要があります。