1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaEE 7 Cargo TrackerアプリケーションをOracle Application Container Cloud上のGlassFishで動作させる

Posted at

はじめに

[JavaEE 7 Cargo TrackerアプリケーションをOracle Developer Cloudを使って動かす(ビルド編)] (http://qiita.com/nobuhikosekiya/items/1ba564fdc0a49650fae3) でJavaEE 7 Cargo TrackerプロジェクトのビルドをOracle Developer Cloud Serviceで実践してみました。

今回は、Oracle Application Container Cloud Serviceというクラウド上のコンテナでGlassFishとともにこのCargo Trackerをデプロイして動かしてみます。

※前回の投稿の作業をしてある前提の手順になっています。

Oracle Application Container Cloud用のデプロイアーカイブの作成

Oracle Application Container Cloud Service側で用意されているのはコンテナ(中はDockerが動いています)と、Java SEランタイムです。JavaEEのランタイム(今回はEmbedded GlassFish)とアプリケーションはユーザーが用意し、デプロイアーカイブとしてデプロイする必要があります。
デプロイアーカイブには上記2点のほかに、起動方法やその他オプションを設定したmanifest.jsonファイルを入れておく必要があります。
今回デプロイアーカイブ自体の作成方法の詳細は割愛します。Mavenを使って簡単にアーカイブファイルを作成できるコードを用意しています。

今回もOracle Developer Cloud Serviceを使ってデプロイアーカイブをビルドするやり方を紹介しますが、Developer Cloud を使うのは必須ではありません。普通にローカル環境で手で上記リソースをzipにパッケージして作ることもできます。

Developer Cloud ServiceのGitリポジトリにGlassFish起動クラスのコードをインポート

まずEmbedded GlassFishを起動のためのjavaクラスのコードをGitHubからインポートしてください。

Developer CloudのHomeタブからGitリポジトリを追加します。
Image.png

名前はembedded-glassfish-starterとします。
Import existing repositoryを選択し、以下のURLを入れます。
https://github.com/nobuhikosekiya/embedded-glassfish-starter.git

Image.png
インポートしたら、Developer Cloudのコード画面から確認してみてください。

Developer Cloud ServiceのGitリポジトリにApplication Container Cloudデプロイパッケージ作成用のMavenプロジェクトをインポート

もう一つGitリポジトリを追加します。
名前はaccszipbuilder-cargotrackerとします。
以下のURLからインポートしてください。
https://github.com/nobuhikosekiya/accszipbuilder-cargotracker.git
Image.png

この段階でのGitリポジトリはこのようになっていると思います。
※Cargo-Tracker.gitは
[JavaEE 7 Cargo TrackerアプリケーションをOracle Developer Cloudを使って動かす(ビルド編)] (http://qiita.com/nobuhikosekiya/items/1ba564fdc0a49650fae3)  でインポートしています。
Image.png

デプロイパッケージ作成用のHudsonビルドジョブを作成

Developer CloudのBuildタブを選択し、New Jobを押します。

Image.png

build-accszip-cargotrackerというジョブ名で作成します。
Image.png

ここからはジョブの中の設定です。

まず、今回一部コードがJava 8のAPIを使っているので、JDKとしてはJDK 8を指定します。
Image.png

次に利用するコードの指定をSource Controlタブで行います。
ここではプロジェクトに登録してある3つのGitリポジトリを指定します。Addボタンで複数を指定できます。

Image.png
Image.png

注意点として、Local Subdirectoryでそれぞれのコードをダウンロードするディレクトリを分けておく必要があります。今回は以下のGitとSubdirectoryの指定にしました。

  • Cargo-Tracker.git ... cargotracker
  • accszipbuilder-cargotracker.git ... accszip
  • embedded-glassfish-starter.git ... glassfishstarter

その他Advanced Repository SettingsのNameとReference Specはブランクで大丈夫です。一度保存すると自動的に値が入ります。

次はビルドステップです。さきほどの3つのGitコードがそれぞれMavenプロジェクトですので、ここで3回Mavenコマンドを定義します。それぞれpom fileのパスを指定します。

最初。Pom File はcargotracker/pom.xml
Image.png

2つめ。Pom File はglassfishstarter/embeddedglassfishstarter/pom.xml
Image.png

3つめ。Pom Fileは accszip/accszipbuilder-cargotracker/pom.xml
Image.png

次に、Post Buildでmavenで生成されたファイルを保存するようにします。
Image.png

設定は以上です。Saveボタンを最後に押します。

Build Nowボタンからさっそくジョブを実行しましょう。
Image.png

うまくいけば、成功マークが出ます。4分程度ビルドにかかります。
Image.png

ビルド番号のリンクをクリックし、保存されているBuild Artifactsを核にします。
Image.png

複数保存されていますが、あとでデプロイに使用するのはzip形式のファイルのみです。クリックしてダウンロードできますが、GlassFishが丸ごと含まれているため80MBと大きいです。

zipの中はこんな感じになっています。3つファイルがあることを確認してください。
Image.png

embeddedglassfishstarter-jar-with-dependencies.jarの中をさらにのぞいてみます。基本的にEmbedded GlassFishのプログラムです。
Image.png

ただ、com.example.embeddedglassfishstarter.EmbeddedGlassFish.class という起動クラスだけ、GlassFish本体とは異なるjavaクラスです。これが中に混ざっていることを確認しましょう。

manifest.jsonの中はこのようになっています。

{
  "runtime": {
      "majorVersion": "8"
  },
  "command": "java -Dappfile.name=cargo-tracker.war -Dcontextroot=cargo-tracker -jar embeddedglassfishstarter-jar-with-dependencies.jar",
  "release": {
    "version": "0.0.1-SNAPSHOT"
  }
}

Oracle Application Container Cloud Serviceへのデプロイ

Developer CloudのDeployタブを選択して、Deploy設定を追加します。
Image.png

適当な名前を入れたあと、DeploymentTargetとしてApplication Container Cloud Serviceの情報を登録します。
Image.png
Image.png
各欄に自身のアカウント情報を入力してください。

入力後、Test Connectionボタンを押し、成功したらその後Use Connectionボタンで登録します。

次にRuntimeはJavaを選択します。Typeは今回はOn Demandで、先ほど実行したJobと、成功したBuild番号、そしてArtifactとしては複数選択できる中の、zipファイルを選択します。
Image.png

最後、Save and Deployボタンで終了です。

うまくいけば画面右側にDeployment Succeededと出ます。失敗の場合はFailedです。
Image.png

Application Container Cloud Service画面の確認

さきほどのDeploy設定画面のDeploy to ACCSというところにリンクがあり、クリックするとApplication Container Cloud Serviceの画面に飛びます。デプロイが成功している場合は下のようにインスタンスができています。

Image.png

もしデプロイがFailの場合は、Application creation and deletion historyを開き、FailしたときのServer Logsをクリックしてダウンロードしてみてください。(ダウンロード時にも認証が必要です。正しく認証してもエラーがなぜか出ますが問題なくログはダウンロードできました)
Image.png

デプロイが成功している場合、インスタンスのURLをクリックしましょう。404 Not Foundが出ますが、その後にURLの後ろに/cargo-trackerのパスを追加してください。
例:https://cargo-tracker-accs-自身のドメイン名.apaas.us6.oraclecloud.com/cargo-tracker

Cargo Trackerが表示されます。
Image.png

おわり

今回クラウド上の操作だけJavaEE 7のアプリケーションをデプロイして動かすことができました。いかがだったでしょうか。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?