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 にインポートした場合は、次のセクションに進むことができます。
  1. インポートしていない場合は、 「Maven 設定を使用した JBoss Enterprise Application Platform の Maven リポジトリーの設定」に記述された手順に従います。
  2. JBoss Developer Studio がインストールされていない場合は、 「JBoss Developer Studio 5 のインストール」に記述された手順に従います。
  3. 「JBoss Developer Studio の起動」に記述された手順に従います。
  4. メニューより [File][Import] と選択します。
  5. 選択リストより [Maven][Maven Projects] と選択し、[Next] を選択します。
    既存の Maven プロジェクトのインポート

    図1.9 既存の Maven プロジェクトのインポート

  6. QUICKSTART_HOME/quickstart/helloworld/ ディレクトリを閲覧し、[OK] をクリックします。[ Projects] リストボックスに [helloworld] クイックスタートプロジェクトから pom.xml ファイルが追加されます。
    Maven プロジェクトの選択

    図1.10 Maven プロジェクトの選択

  7. [Finish] をクリックします。

手順1.10 helloworld クイックスタートのビルドとデプロイ

  1. JBoss Enterprise Application Platform 6 用 JBoss Developer Studio がまだ設定されていない場合は、 「JBoss Enterprise Application Platform 6 サーバーの JBoss Developer Studio への追加」に記述された手順に従います。
  2. [Project Explorer] タブの [jboss-as-helloworld] を右クリックし、[Run As][Run on Server] と選択します。
    サーバー上での実行

    図1.11 サーバー上での実行

  3. [JBoss EAP 6.0 Runtime Server] サーバーを選択し、[Next] をクリックします。これにより helloworld クイックスタートが JBoss サーバーにデプロイされます。
  4. 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 ファイルも含まれています。
  1. beans.xml はクイックスタートの src/main/webapp/ ディレクトリにある WEB-INF/ フォルダーにあります。
  2. src/main/webapp/ ディレクトリには、単純なメタリフレッシュを使用してユーザーのブラウザーを http://localhost:8080/jboss-as-helloworld/HelloWorld にあるサーブレットへリダイレクトする index.html ファイルも含まれています。
  3. この例の全設定は、例の src/main/webapp/ ディレクトリにある WEB-INF/ にあります。
  4. クイックスタートには web.xml ファイルは必要ありません。

手順1.12 コードの確認

パッケージの宣言とインポートはこれらのリストには含まれていません。完全なリストはクイックスタートのソースコードにあります。
  1. HelloWorldServlet コードの検証

    HelloWorldServlet.javasrc/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 要求へ書き出します。
  2. 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.  
    
    

このページには機械翻訳が使用されている場合があります (詳細はこちら)。