原文はこちら。
https://blogs.oracle.com/brunoborges/entry/docker_java_ee_7_and
WebLogic Server 12.1.3がリリースされました。このリリースでは、データベースをバックエンドに持つWebアプリケーションの開発でおそらく最も重要なJava EE 7 APIをサポートしています。以下のようなJava EE 7の仕様を12.1.3でサポートしています。
ご覧になるとわかる通り、WebLogicはGlassFish 4.0と同じ実装をバンドルしています。既にJava EE 7アプリケーションを開発し始めていて(もちろんこれらのAPIに制限されていますが)、現在商用サポート環境を求めてらっしゃるのであれば、このリリースにより、互換性のあるアプリケーションサーバをお手元に提供することができます。
(訳注)
論理的には互換性がある、ということです。
また、Apache Maven Pluginも改善されています。これにより開発者の負担が減り、テストの自動化(Arquillian!)や継続的インテグレーションとデリバリ(Continuous Integration and Delivery)をずっとスムーズに実現します。MavenベースのプロジェクトをサポートするIDEにより、この恩恵を受けることができます。
この結果、WebLogic Serverは、RESTfulサービスやWebSocketサービスを持つ最新のWeb HTML5/JavaScriptアプリケーションを実行するための最高のJava EEアプリケーションサーバになるのでしょうか?そこで肯定したらフェアではないですよね?だから、WebLogicをテストする良い方法を提供するため、
Dockerfileを作成しました。WebLogicドメインを皆さんの開発環境で作成し、その上で好きなようにテストしてください。
開発者用ZIPインストーラのDockerfileを
WebLogicコミュニティのGitHubにおきましたので、お求めの方はweblogic-dockerに移動してください。
weblogic-community/weblogic-docker
https://github.com/weblogic-community/weblogic-docker
Getting started with WebLogic 12.1.3, Java EE 7, Maven, and Docker
では
はじめましょう。まずはOTNのサイトで開発者向けWebLogic Server 12.1.3 ZIPインストーラをダウンロードします。
Oracle Fusion Middleware Software Downloads
http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html
Dockerを使わずにWebLogic 12.1.3をインストールする
WebLogic ServerのZIPインストーラを使うと非常に簡単にインストールできます。
- Zipファイルを開き、wls12130ディレクトリを配置するフォルダにコンテンツを展開します。当方のLinuxマシンでは、/home/bruno/Work/tools/を使います。
- wls12130フォルダに移動し、configure.cmd(Windows) もしくはconfigure.sh (Unix)を実行します。
- インストーラがドメイン作成を尋ねてきたら[Y]とします。
- ユーザー名とパスワードを尋ねてきます。当方の場合、開発環境では通常、 weblogic/welcome1 を使っています。
- インストーラがすぐにWebLogic Serverを起動しますので、http://localhost:7001/consoleで動作あしていることを確認できます。
Dockerを使ってWebLogic Server 12.1.3をインストールする
Linuxベースのマシンを開発環境として利用し、Dockerにまだ詳しくない方であれば、「What is Docker」をご覧になってから試して下さい。
Docker
http://www.docker.com/
What is Docker?
http://www.docker.com/whatisdocker/
The best way to understand Docker is to try it!
http://www.docker.com/tryit/
手短に言うと、DockerはLinuxコンテナです。仮想マシンに似ていますが、そうではありません(例えば、Vagrant仮想マシン上でDockerを実行している人がいます)。ここで重要なのは、仮想IPアドレスを持つ仮想ネットワークインターフェースを作成する、ということです。
当方のノートPCではUbuntu 14.04が動作していますので、以下のDockerインストール手順を使ってセットアップしました。
Ubuntu - Docker Documentation
https://docs.docker.com/installation/ubuntulinux/
読者のみなさんがお使いのOSに対応した手順に従い、みなさんのPCにDockerがインストールされているものと仮定します。
各OSに対応したインストール手順
https://docs.docker.com/installation/#installation.
- ZIPファイルをダウンロードするか、もしくはweblogic-docker Gitリポジトリをチェックアウトし、PC上に展開します。展開した場所を$DOCKET_HOMEとします。
- 先ほどダウンロードした wls12130_dev.zip を、$DOCKER_HOME/weblogic-docker/weblogic12c-zip/ にコピーします。
- sudoを使ってbuild.shスクリプトを呼び出し、Dockerがよろしくやってくれるのを待ちます。
- dockWebLogic.sh を呼び出し、WebLogic ServerがDockerコンテナで動作するのを確認します。
- ポート番号7001をホストインターフェースに割り当てます。
- http://localhost:7001/console. を開き、Username/password としてweblogic/welcome1を使いログインしましょう。
[注意]
Docker上でのWebLogic Serverのサポートは一切提供していませんので、ご自身の責任でお使い下さい。開発者インストーラ(Zip)は開発環境用でしかなく、サポート対象外であり、パッチの適用はできません。それでもなおWebLogic Server 12cのフルインストーラをDocker上で実行したいということであれば、以下のリンクをどうぞ。
https://github.com/weblogic-community/weblogic-docker/tree/master/weblogic12c-full.
ローカルMavenディレクトリの構成
CI環境(HudsonやJenkins)にとって最適なWebLogicのローカルインストールをしなくてもMavenを利用することはできます。確かにリモートサーバへのデプロイする場合、Maven Pluginを最初にセットアップするためにはWebLogic Serverのインストールが必要ですが、例えば、リモートのMavenリポジトリにMaven Pluginをインストールすれば、他の開発者やCI環境にとって、ローカルにWebLogicがインストールされている必要はありません。もちろん、ローカル開発環境でも、「リモート」サーバとしてWebLogic Serverを指すことができます。
Mavenの構成手順はドキュメントにまとめられています。
Developing Applications Using Continuous Integration
5.3.1 Introduction to the Maven Synchronization Plug-In
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven.htm#CDCIIIDC
ローカルリポジトリにインストール後、syncゴールを呼び出して、ローカルリポジトリやリモートリポジトリに移入することができます。
Developing Applications Using Continuous Integration
5.3.5.1 Populating a Local Repository
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven.htm#CDCIBGJA
以下にローカル環境での手順をまとめました。
- WebLogic ServerのHomeインストールディレクトリに移動します。
[例]
$ cd /home/bruno/Work/wls12130/
- サブディレクトリに移動します
$ cd oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/
- 次のコマンドを実行します。
$ mvn install:install-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar
- 最後に、pushコマンドを実行して、Mavenアーティファクト(plugins, archetypesなど)をリポジトリにアップロードします(今回の場合はローカルリポジトリです)。
$ mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=/home/bruno/Work/wls12130/
リモートリポジトリの構成をしたい場合は、次のドキュメントをどうぞ。
Developing Applications Using Continuous Integration
5.3.5.2 Populating a Remote Repository
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven.htm#CDCGICIJ.
Create Java EE applications with WebLogic Maven Archetypes
WebLogic ServerはMaven Pluginと共に事前構成済みのアーキタイプを提供しています。
Developing Applications Using Continuous Integration
Maven Coordinates with WebLogic Server
http://docs.oracle.com/middleware/1213/core/MAVEN/weblogic_maven.htm#CHDHJDAA
では、Basic WebApp Maven Archetypeを使い、簡単なWebプロジェクトを作成しましょう。
Developing Applications Using Continuous Integration
Using the Basic WebApp Maven Archetype
http://docs.oracle.com/middleware/1213/core/MAVEN/weblogic_maven.htm#A1012114
mvn archetype:generate
-DarchetypeGroupId=com.oracle.weblogic.archetype
-DarchetypeArtifactId=basic-webapp
-DarchetypeVersion=12.1.3-0-0
-DgroupId=org.mycompany
-DartifactId=my-basic-webapp-project
-Dversion=1.0-SNAPSHOT
このMavenプロジェクトをNetBeansやIntelliJ IDEA、Eclipseで開くことができ、WebLogic ServerをみなさんのIDEで構成することができますし、そうでないとしても、以下のコマンドを実行して、ビルド、パッケージの上、ご自身のマシンで動作しているWebLogic Server(Dockerでも通常のインストールを使っていてもかまいません)にアーティファクトであるWARファイルをデプロイできます。
Developing an Enterprise Application for Oracle WebLogic Server
https://netbeans.org/kb/docs/web/jsf-jpa-weblogic.html
mvn package pre-integration-test
-DoracleUsername=weblogic
-DoraclePassword=welcome1
-Dupload=true
Dockerを使っているかどうかわかりませんので、忘れずに-Dupload=trueを使いましょう。もしDockerを使っている場合には、コンテナはローカルシステムへのアクセス権を持っていないので、アップロードが必要です(アクセスさせることは可能なのですがね!)
Managing Data in Containers
https://docs.docker.com/userguide/dockervolumes/
さて、
http://localhost:7001/basicWebapp を開き、このサンプルアプリケーションが起動していることを確認しましょう。
Bonus!
ところで、IntelliJ IDEAユーザであれば、JetBrainsチームと一緒に実施した、「
Developing Java EE Applications for WebLogic 12c with IntelliJ IDEA」という、最新のWebinarをご覧になりたいと思うかもしれませんね。スライドもありますので、ご興味があれば、ぜひ。
Developing Java EE Applications for Weblogic 12c with IntelliJ IDEA
http://www.slideshare.net/brunoborges/developing-java-ee-applications-on-intellij-idea-with-oracle-weblogic-12c