1.4.4. クイックスタートチュートリアルの確認
1.4.4.1. helloworld クイックスタート
概要
helloworld クイックスタートでは JBoss Enterprise Application Platform 6 に単純なサーブレットをデプロイする方法を説明します。ビジネスロジックは CDI (Contexts and Dependency Injection) Bean として提供されるサービスにカプセル化されサーブレットに挿入されます。このクイックスタートは大変単純です。「Hello World」を Web ページに出力するだけです。サーバーが適切に設定され、起動されたかを最初に確認するのに適しています。
コマンドラインを使用してこのクイックスタートをビルドしデプロイする手順の詳細は helloworld クイックスタートディレクトリのルートにある README ファイルを参照してください。ここでは JBoss Developer Studio を使用してクイックスタートを実行する方法を説明します。
手順1.9 helloworld クイックスタートを JBoss Developer Studio にインポートします。
「JBoss Developer Studio でのクイックスタートの実行」に記述された手順に従ってすでにすべてのクイックスタートを JBoss Developer Studio にインポートした場合は、次のセクションに進むことができます。
- インポートしていない場合は、 「Maven 設定を使用した JBoss Enterprise Application Platform の Maven リポジトリーの設定」に記述された手順に従います。
- JBoss Developer Studio がインストールされていない場合は、 「JBoss Developer Studio 5 のインストール」に記述された手順に従います。
- 「JBoss Developer Studio の起動」に記述された手順に従います。
- メニューより [File] → [Import] と選択します。
- 選択リストより [Maven] → [Maven Projects] と選択し、[Next] を選択します。
図1.9 既存の Maven プロジェクトのインポート
QUICKSTART_HOME/quickstart/helloworld/
ディレクトリを閲覧し、[OK] をクリックします。[ Projects] リストボックスに [helloworld] クイックスタートプロジェクトからpom.xml
ファイルが追加されます。図1.10 Maven プロジェクトの選択
- [Finish] をクリックします。
手順1.10 helloworld クイックスタートのビルドとデプロイ
- JBoss Enterprise Application Platform 6 用 JBoss Developer Studio がまだ設定されていない場合は、 「JBoss Enterprise Application Platform 6 サーバーの JBoss Developer Studio への追加」に記述された手順に従います。
- [Project Explorer] タブの [jboss-as-helloworld] を右クリックし、[Run As] → [Run on Server] と選択します。
図1.11 サーバー上での実行
- [JBoss EAP 6.0 Runtime Server] サーバーを選択し、[Next] をクリックします。これにより helloworld クイックスタートが JBoss サーバーにデプロイされます。
- helloworld が JBoss サーバーに正しくデプロイされたことを確認するには、Web ブラウザーを開き、URL http://localhost:8080/jboss-as-helloworld を指定してアプリケーションにアクセスします。
手順1.11 ディレクトリ構造の確認
helloworld クイックスタートのコードは
QUICKSTART_HOME/helloworld
ディレクトリにあります。helloworld クイックスタートはサーブレットと CDI Bean によって構成されます。また、このアプリケーションの Bean を検索し、CDI をアクティベートするよう JBoss Enterprise Application Platform 6 に伝える空の beans.xml ファイルも含まれています。
beans.xml
はクイックスタートのsrc/main/webapp/
ディレクトリにあるWEB-INF/
フォルダーにあります。src/main/webapp/
ディレクトリには、単純なメタリフレッシュを使用してユーザーのブラウザーを http://localhost:8080/jboss-as-helloworld/HelloWorld にあるサーブレットへリダイレクトするindex.html
ファイルも含まれています。- この例の全設定は、例の
src/main/webapp/
ディレクトリにあるWEB-INF/
にあります。 - クイックスタートには
web.xml
ファイルは必要ありません。
手順1.12 コードの確認
パッケージの宣言とインポートはこれらのリストには含まれていません。完全なリストはクイックスタートのソースコードにあります。
HelloWorldServlet コードの検証
HelloWorldServlet.java
はsrc/main/java/org/jboss/as/quickstarts/helloworld/
ディレクトリにあります。このサーブレットが情報をブラウザーに送ります。27. @WebServlet("/HelloWorld") 28. public class HelloWorldServlet extends HttpServlet { 29. 30. static String PAGE_HEADER = "<html><head /><body>"; 31. 32. static String PAGE_FOOTER = "</body></html>"; 33. 34. @Inject 35. HelloService helloService; 36. 37. @Override 38. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 39. PrintWriter writer = resp.getWriter(); 40. writer.println(PAGE_HEADER); 41. writer.println("<h1>" + helloService.createHelloMessage("World") + "</h1>"); 42. writer.println(PAGE_FOOTER); 43. writer.close(); 44. } 45. 46. }
表1.1 HelloWorldServlet の詳細
行 注記 27 Java EE 6 以前はサーブレットの登録に XML ファイルが使用されました。サーブレットの登録はかなり簡易化され、 @WebServlet
アノテーションを追加し、サーブレットへのアクセスに使用される URL へのマッピングを提供することのみが必要となります。30-32 各 Web ページには適切な形式の HTML が必要になります。本クイックスタートは静的な文字列を使用して最低限のヘッダーとフッターの出力を書き出します。 34-35 これらの行は実際のメッセージを生成する HelloService CDI Bean を挿入します。HelloService の API を変更しない限り、ビューレイヤーを変更せずに HelloService の実装を後日変更することが可能です。 41 この行はサービスへ呼び出し、「Hello World」というメッセージを生成して HTTP 要求へ書き出します。 HelloService コードの検証
HelloService.java
ファイルはsrc/main/java/org/jboss/as/quickstarts/helloworld/
ディレクトリにあります。このサービスは非常に単純であり、メッセージを返します。XML やアノテーションの登録は必要ありません。9. public class HelloService { 10. 11. String createHelloMessage(String name) { 12. return "Hello " + name + "!"; 32. } 33. } 34.