[FMW, WLS] Docker, Java EE 7, and Maven with WebLogic 12.1.3

原文はこちら。
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インストーラのDockerfileWebLogicコミュニティの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インストーラを使うと非常に簡単にインストールできます。
  1. Zipファイルを開き、wls12130ディレクトリを配置するフォルダにコンテンツを展開します。当方のLinuxマシンでは、/home/bruno/Work/tools/を使います。
  2. wls12130フォルダに移動し、configure.cmd(Windows) もしくはconfigure.sh (Unix)を実行します。
    • ドメイン作成に時間がかかりすぎたり、インストーラが固まったりする可能性があります。Linuxの場合、次の設定をお忘れなく。
      $ export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom
      Release Notes for Oracle WebLogic Server Creating and Updating Domains Takes Too Long http://docs.oracle.com/middleware/1213/wls/WLSRN/issues.htm#BCFFDBEB
  3. インストーラがドメイン作成を尋ねてきたら[Y]とします。
  4. ユーザー名とパスワードを尋ねてきます。当方の場合、開発環境では通常、 weblogic/welcome1 を使っています。
  5. インストーラがすぐに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.
  1. ZIPファイルをダウンロードするか、もしくはweblogic-docker Gitリポジトリをチェックアウトし、PC上に展開します。展開した場所を$DOCKET_HOMEとします。
  2. 先ほどダウンロードした wls12130_dev.zip を、$DOCKER_HOME/weblogic-docker/weblogic12c-zip/ にコピーします。
  3. sudoを使ってbuild.shスクリプトを呼び出し、Dockerがよろしくやってくれるのを待ちます。
  4. dockWebLogic.sh を呼び出し、WebLogic ServerがDockerコンテナで動作するのを確認します。
    • ポート番号7001をホストインターフェースに割り当てます。
  5. 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
以下にローカル環境での手順をまとめました。
  1. WebLogic ServerのHomeインストールディレクトリに移動します。
    [例]
    $ cd /home/bruno/Work/wls12130/
  2. サブディレクトリに移動します
    $ cd oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.1.3/
  3. 次のコマンドを実行します。
    $ mvn install:install-file -DpomFile=oracle-maven-sync-12.1.3.pom -Dfile=oracle-maven-sync-12.1.3.jar
  4. 最後に、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/

Description of wls_02.jpg follows

さて、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

0 件のコメント:

コメントを投稿