アーカイブ

‘dev’ タグのついている投稿

JBoss AS 7 – Getting Started Developing Applications Guide – Getting started with JBoss AS

今回は開発環境構築に関するお話です。Eclipse + JBoss Tools のインストールと Maven プロジェクトのインポートや Eclipse からのデプロイ/アンデプロイやデバッッグに関するお話です。

JBoss Tools についてる Maven のプラグインがなかなかの使い心地です。クールとはいかないまでもそれなりに。。。

1 週間程マカオに出張に行っており前のエントリからちょっと時間が経ってしまっていますが、ここからはガシガシ AS7 の素晴らしさを世に知らしめていこうと思います!

Getting started with JBoss AS

examples アプリケーションを同梱されるビルドスクリプトを使用して動作させるには以下のソフトウェアが必要になります。

  • JDK 1.6.x
  • Apache Maven 3.0.x
  • JBoss AS 7
  • JBoss AS 7 Quick Starts
  既にこれらのソフトウェアが導入されていれば再度インストールする必要はありません。

AS7 のインストール対象プラットフォームで実行可能な Java 実行環境( JDK )を選択し、マニュアルに従いインストールを行って下さい。例として以下の JDK が選択可能です。

Maven 3 ※1 がまだインストールされていない場合オフィシャルガイド ※2 を参照して下さい。

以下のコマンドを実行することにより、インストールされている Maven のバージョンを確認することができます。

mvn –version

ヴァージョン 3.0.0 以降がインストールされていれば examples アプリケーションのビルドが可能です。

※1 Apache Maven , Maven 3 Doanload

※2 Maven Getting Started Guide

以降では Eclipse を使用した examples アプリケーションのデプロイ方法について紹介します。

JBoss AS 7 を JBoss AS download page からダウンロード済みの状態を前提として解説を行います。

 JBoss AS 7 は複数の AS インスタンスを一元管理する機能を提供します。これら AS インスタンス( server )の集合は “domain” のメンバーとみなされ、 Domain Controller プロセスが管理ポイントとして動作します。”domain” は複数の物理(あるいは仮想)マシーンにまたがって構成することが可能です。個々の物理(あるいは仮想)マシーン(ホスト)上では Host Controller プロセスがそのホスト上の AS インスタンスの管理を行います。Host Controller は Domain Controller と AS インスタンスのライフサイクル管理や Domain Controller サポートをするために連携を行います。AS7 は standalone モードで稼働されることも可能で、quickstart example アプリケーションの動作確認では standalone を使用します。

Installing and starting JBoss AS on Linux, Unix or Mac OS X

最初に、以降で紹介するコマンドを実行し JDK と Maven が正しくインストールされているかの確認を行って下さい。

java -version

上記の実行結果から JDK のバージョンが 1.6.0 以降であることを確認して下さい。次に以下のコマンドを実行して下さい。

mvn –version

上記の実行結果から Maven のバージョンが 3.0.0 以降であることを確認して下さい。

次に、 JBoss AS のインストールディレクトリを選択します、デフォルトでは JBoss AS 7 は jboss-7.x.x.x ディレクトリに展開されます。( 7.x.x.x はダウンロードバージョンを表します。)

インストール対象ディレクトリにダウロードした JBoss AS 7 の zip ファイルを解凍して下さい。

unzip jboss-7.x.x.x .zip

それでは JBoss AS を standalone モードで起動してみましょう。

jboss-7.x.x.x/bin/standalone.sh

  JBoss AS の停止には AS を(フォアグラウンドで)起動したターミナルで Crtl-C を実行して下さい。

以上で JBoss AS のインストールと起動ができました。 http://localhost:8080/ にアクセスし server が正しく起動しているかを確認して下さい。

  モードの場合、ログファイルは jboss-7.x.x.x/standalone/log/server.log にあります。Getting Started Guide ではロギング設定についてより詳しい内容が紹介されています。

Installing and starting JBoss AS on Windows

インストール手順は Linux, Unix, Mac OS S と同様です。

これらの OS と同様の手順で jboss-7.x.x.x を展開後、以下を実行し動作確認を行って下さい。

boss-7.x.x.x/bin/standalone.bat

Starting JBoss AS from Eclipse with JBoss Tools

JBoss AS の起動やアプリケーションのデプロイについて、コマンドラインより Eclipse による方法を選択する場合、以降を参照して下さい。
JBoss AS を Eclipse から使用するためには、JBoss AS をインストールする必要があります。上述のガイドに従い JBoss AS のインストールと起動確認を行って下さい。
JBoss  AS を Eclipse から使用するためには、 Eclipse Indigo ( Eclipse 3.7 ) と JBoss Tools 3.3 M2 以降が必要になります。quickstarts アプリケーションを Eclipse から起動した場合は m2eclipse も必要になります。

Eclipse, m2eclipse, JBoss Tools のインストール方法は JBoss Tools Site に記載があります。 Maven Support feature と Java EE Development feature のインストールを確認して下さい。

Eclipse と JBoss Tools のインストールについて補足します。手順は以下の通りです。

     1. Eclipse Downloads から Eclipse 3.7.x をダウンロードします。※ Java EE Developers をダウンロードします。

     2. Eclipse を適当なディレクトリで起動して、 [Help] -> [Install New Software] を選択します。

     3. [Add] を選択し以下を入力します。

Name: JBoss Tools 3.3

Location: http://download.jboss.org/jbosstools/updates/development/indigo/

add repository

     4. Available Software ウィンドウにおいて [All JBoss Tools 3.3] [Application Development] [Maven Support] [Web and Java EE Development] を選択状態にし [Next] を選択します。

available software

     5. Install Details ウィンドウで [Next] を選択します。

install

     6. Revie Licenses ウィンドウで [I accept …] を選択状態にし [Finish] を選択します。

review license

     7. Software Updates ウィンドウで [Restart Now] を選択し Eclipse の再起動を行います。

     8. Eclipse のインストールと起動が正しくできたら、 JBoss AS を Eclipse に追加する必要があります。

          最初に、以下の通り [File] -> [New] -> [Other] を選択して下さい。

new server

     9. 新規サーバ(New Server)ウィザードを選択します。

select a wizard

     10. [JBoss AS 7.x] を選択します。

new server

     11. [Server name:] に任意の適切な名前を入力し [Next] を選択します。

          JBoss Runtime ウィンドウで Name に任意の適切なランタイム名と Home Derectory に AS7 のインストールディレクトリを指定し [Finish] を選択します。

jboss runtime

     12. AS7 を Eclipse から起動するには Servers ビューを使用します。

          前述の手順で登録した AS7 ランタイムが Servers ビューに表示されるので、それを選択し右クリックから [Debug] もしくは [Start] を選択し AS7 を起動します。別の AS7 プロセスが起動している場合そちらを停止します。

          ※ Servers ビューが表示されていない場合、[Window] -> [Show View] -> [Others…] -> [Server] -> [Servers] を選択し Servers ビューを表示させて下さい。

servers view

start server

  AS7 ランタイム上にデプロイしたアプリケーションのデバックを行う場合、 [Start] ではなく[Debug] を使用して AS7 を起動して下さい。これにより AS7 はデバッグモードで起動され Eclipse デバッガにアタッチされます。

     13. AS7 を起動すると Console ビューにサーバログが出力されます。

console view

Importing the quickstarts into Eclipse

quickstarts アプリケーションを Eclipse にインポートするには m2eclipse プラグインが必要になります。

※ 前述 4. の手順により m2eclipse のインストールは完了しています。 m2eclipse は Maven プロジェクト( pom.xml )を Eclipse と連携させるプラグインです。厳密には Maven から Eclipse プロジェクトのメタファイル( .project )を生成( mvn eclipse:eclipse )することにより m2eclipse プラグインを使用せずに Maven で構築されたプロジェクトを Eclipse に認識させることも可能です。

     1. [File] -> [Import…] -> [Maven] -> [Existing Maven Projects] を選択します。

new import

select maven project

     2. quickstarts ディレクトリ( quickstarts を解凍したルートディレクトリ)をファイルブラウザで指定します。

select directory

     3. Maven Projects ウィンドウで 4 プロジェクトが選択状態にあることを確認し [Finish] を選択します。

maven project

     4. Maven プロジェクトのインポートが成功すると Package Explorer に以下の 4 プロジェクトが表示されます。

※ プロジェクトのインポートは依存するライブラリを Maven のリモートリポジトリからのダウンロードも行われるので多少時間がかかる場合があります。

imported project

     5. jboss-as-helloworld を例に Eclipse を使用した Maven アプリケーションのデプロイ/アンデプロイについて補足します。

アプリケーションの Eclipse からのデプロイ/アンデプロイにはデプロイ対象の Server に対象アプリケーションを追加( Add )/削除( Remove )することにより行います。

Servers ビュー上のデプロイ対象サーバを右クリックし表示されるコンテキストメニューから [Add and Remove…] を選択します。

add server

     6. Add and Remove ウィンドウが表示され [Available] に追加可能なプロジェクトの一覧が表示されます。

select add project

     7. 今回は jboss-as-helloworld プロジェクトをデプロイします。

project selected

     8. jboss-as-helloworld が選択された状態で [Add >] を選択し同プロジェクトを [Configured] に移動させ [Finish] を選択します。

jboss-as-helloworld が AS7 にデプロイされコンソールビューにデプロイ成功ログが出力されれば成功です。

deploy log

デプロイはアプリケーションアーカイブ( war/ear …)を $JBOSS_HOME/standalone/deployments に配置することで実現しているようです。

上記のログでは MSC のスレッドが 4 つ稼働しているのが分ります。jpa, weld, web コンテナですね。web コンテナのログからアプリケーションのコンテキストルートが /jboss-as-helloworld であることがわかりますね。

ブラウザからアプリケーション <http://localhost:8080/jboss-as-helloworld&gt; にアクセスしてみましょう。。。まぁ “Hello World!” を出力する味気ない画面が表示されるだけですが。

管理コンソールの [Deployments] -> [Manage Deployments] からjboss-as-helloworld.war がデプロイされていることが確認できます。

CLI を使用すれば、 jboss-as-helloworld.war のリソースを階層構造で辿っていくことが可能です。

以下のコマンドを実行すると HelloWorldServlet のリソース情報が参照可能です。

/deployment=jboss-as-helloworld.war/subsystem=web/servlet=org.jboss.as.quickstarts.helloworld.HelloWorldServlet:read-resource

read resource

CLI は設定やデプロイされたアプリケーションや JMS, Datasource をリソースという概念で木構造で管理するスタイルをとっています。

上述のコマンドは /deployment=jboss-as-helloworld.war/subsystem=web/servlet=org.jboss.as.quickstarts.helloworld.HelloWorldServlet というリソースに対して read-resource というコマンドを実行しています。

木構造を辿る際やあるリソースに対して実行可能なコマンドはタブにより補完されます。上記のコンソールのスクリーンキャプチャでは /deployment=jboss-as-helloworld.war/subsystem=web/servlet=org.jboss.as.quickstarts.helloworld.HelloWorldServlet リソースを明示した状態でタブを使用することにより使用可能なコマンドの一覧が表示されています。

CLI を使用してアプリケーションのアンデプロイも可能なので試してみましょう。

undeploy command

jboss-as-helloworld アプリケーションの中身を少しみてみましょう。

コンテキストルート “/jboss-as-helloworld” をブラウザから指定すると “/jboss-as-helloworld/HelloWorld” にリダイレクトされ org.jboss.as.quickstarts.helloworld.HelloWorldServlet サーブレットが駆動します。

HelloWorldServletサーブレットは Servlet 3.0 の仕様に対応して実装されているので @WebServlet(“/HelloWorld”) のアノテーションにより web.xml 無してサーブレットの登録と URL マッピングが実現されています。

同サーブレットは org.jboss.as.quickstarts.helloworld.HelloService というクラスを CDI の @Inject アノテーションを使用して実現しています。ここではまたインターフェース無しのクラスをインジェクションしていたりします。

CDI やその実装である Weld については neverbird さんの なるほど!ザ・Weld で詳しく解説されているのでぜひ参考にして下さい。

Managing JBoss Application Server

AS7 の管理は web 管理コンソール(以降 管理コンソール)もしくはコマンドラインインターフェース(以降 CLI )を使用して行います。これらの詳細は Admin Guide を参照して下さい。

サーバが起動した状態であれば、管理コンソールは <http://localhost:9990/console&gt; からアクセス可能です。管理コンソールからはデータソース、デプロイ サーバ設定等の管理が可能です。

CLI は以下のように jboss-admin.sh もりくは jboss-admin.bat スクリプトを実行して起動します。

$JBOSS_HOME/bin/jboss-admin.sh –connect

CLI起動後は help コマンドにより使用可能なコマンドの情報が表示されます。

本ガイドを通して、アプリケーションのデプロイ/アンデプロイには jboss-as maven プラグインを使用します。

このプラグインは AS7 との連携(通信)に JBoss AS Native Java Detyped Management API を使用します。

管理コンソール/CLIの詳細については Admin Guide – Management Clients を参照して下さい。

広告
タグ: , ,

JBoss AS 7 – Getting Started Developing Application Guide – Introduction

クールにサクッと翻訳だけしました。あまり読む必要は。。。無いです。


イントロダクション

このガイドでは、 AS7 のインストールとスタートアップについて案内します。また( JBoss AS 7 が認定をうけている)Java EE ( Web Profile )のプログラミングモデルの特徴について紹介します。

   Java EE 6

Java EE 6 により開発者は分散可能でトランザクションに対応し移植性に優れたアプリケーションを素早く簡単に開発することが可能です。このような機能が要求されるアプリケーションは “エンタープライズアプリケーション” に分類されると考えられます。これらのアプリケーションには高速かつセキュアで高い信頼性が必要です。

Java EE は SOAP( JAX-WS )を使用した web サービスだけでなく強力なメッセージング( JMS )、トランザクション管理( JTS )、外部リソース接続( JCA )の機能を提供してきました。 Java EE 5 からは、宣言的で軽量な O/R マッピング( JPA )、アノテーションの使用、コンポーネントへのアクセス容易性等のために根本的なプログラミングモデルの転換が計られました。

Java EE 6 では、タイプセイフ、疎結合なプログラミングモデル( CDI )、データの制約に対する宣言的な検証( Bean Validation )、 RESTful web サービス( JAX-RS )の機能追加が行われています。

AS7 は慣れ親しんだ以前の AS のバージョンの構造とは違ったものとなっています。そのため、 Getting started with JBoss AS を参照することを推奨します。

AS7 には最小限の手間でアプリケーションが記述できるようになるための クイックスタート があります。下記の順序に従いクイックスタートの動作/ソースコードを確かめることを推奨しますが、 EE6 の経験がある場合、これらをスキップすることもできます。

Core  
Helloworld quickstart JSF, Wicket, EJB, Spring を使用したアプリケーションの開発経験がある場合、このクイックスタートをスキップすることもできます。
Numberguess quickstart JSF, Wicket, EJB, Spring, JPA, Hibernate を使用したアプリケーションの開発経験がある場合、このクイックスタートをスキップすることもできます。 
Login quickstart Java EE の達人であればこのクイックスタートをスキップすることもできます。
Kitchensink quickstart すばらしいスタートポイントです。
Optional  
Helloworld OSGi quickstart  JBoss AS で OSGi を動かしたい場合、このクイックスタートをチェックして下さい。

クイックスタートのダウンロード

クイックスタートは JBoss AS と一緒に( JBoss AS ランタイムとは別 )配布されています。JBoss AS ダウンロードページ から最新版を入手して下さい。

タグ: , ,