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でサポートしています。
- Java Persistence API 2.1 (EclipseLinkによる実装)
- JAX-RS 2.0 (Jerseyによる実装)
- JSON-P 1.0 (GlassFish subproject jsonpによる実装)
- WebSockets 1.0 (Tyrusによる実装)
(訳注)また、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)を実行します。
- ドメイン作成に時間がかかりすぎたり、インストーラが固まったりする可能性があります。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
- インストーラがドメイン作成を尋ねてきたら[Y]とします。
- ユーザー名とパスワードを尋ねてきます。当方の場合、開発環境では通常、 weblogic/welcome1 を使っています。
- インストーラがすぐにWebLogic Serverを起動しますので、http://localhost:7001/consoleで動作あしていることを確認できます。
Dockerを使ってWebLogic Server 12.1.3をインストールする
Linuxベースのマシンを開発環境として利用し、Dockerにまだ詳しくない方であれば、「What is Docker」をご覧になってから試して下さい。Docker手短に言うと、DockerはLinuxコンテナです。仮想マシンに似ていますが、そうではありません(例えば、Vagrant仮想マシン上でDockerを実行している人がいます)。ここで重要なのは、仮想IPアドレスを持つ仮想ネットワークインターフェースを作成する、ということです。
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/
当方のノートPCではUbuntu 14.04が動作していますので、以下のDockerインストール手順を使ってセットアップしました。
Ubuntu - Docker Documentation読者のみなさんがお使いのOSに対応した手順に従い、みなさんのPCにDockerがインストールされているものと仮定します。
https://docs.docker.com/installation/ubuntulinux/
各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ローカルリポジトリにインストール後、syncゴールを呼び出して、ローカルリポジトリやリモートリポジトリに移入することができます。
5.3.1 Introduction to the Maven Synchronization Plug-In
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven.htm#CDCIIIDC
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では、Basic WebApp Maven Archetypeを使い、簡単なWebプロジェクトを作成しましょう。
Maven Coordinates with WebLogic Server
http://docs.oracle.com/middleware/1213/core/MAVEN/weblogic_maven.htm#CHDHJDAA
Developing Applications Using Continuous Integration
Using the Basic WebApp Maven Archetype
http://docs.oracle.com/middleware/1213/core/MAVEN/weblogic_maven.htm#A1012114
このMavenプロジェクトをNetBeansやIntelliJ IDEA、Eclipseで開くことができ、WebLogic ServerをみなさんのIDEで構成することができますし、そうでないとしても、以下のコマンドを実行して、ビルド、パッケージの上、ご自身のマシンで動作しているWebLogic Server(Dockerでも通常のインストールを使っていてもかまいません)にアーティファクトであるWARファイルをデプロイできます。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
Developing an Enterprise Application for Oracle WebLogic Server
https://netbeans.org/kb/docs/web/jsf-jpa-weblogic.html
Dockerを使っているかどうかわかりませんので、忘れずに-Dupload=trueを使いましょう。もしDockerを使っている場合には、コンテナはローカルシステムへのアクセス権を持っていないので、アップロードが必要です(アクセスさせることは可能なのですがね!)mvn package pre-integration-test -DoracleUsername=weblogic -DoraclePassword=welcome1 -Dupload=true
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
0 件のコメント:
コメントを投稿