2.4. クイックスタートサンプルの検証

2.4.1. helloworld クイックスタート

helloworld クイックスタートは JBoss EAP に単純なサーブレットをデプロイする方法を示します。ビジネスロジックは Jakarta Contexts and Dependency Injection (Jakarta コンテキストと依存関係の挿入) Bean として提供されるサービスにカプセル化され、サーブレットに挿入されます。このクイックスタートに基づいて、サーバーを適切に設定および起動することができます。

コマンドラインを使用してこのクイックスタートをビルドしデプロイする手順の詳細については、helloworld クイックスタートディレクトリーのルートにある README.html ファイルを参照してください。このトピックでは、Red Hat CodeReady Studio を使用してクイックスタートを実行する方法を説明します (Red Hat CodeReady Studio がインストールされ、Maven が設定された状態で helloworld クイックスタートがインポートされ、正常に実行されたことを前提とします)。

前提条件
ディレクトリー構造の確認

helloworld クイックスタートのコードは QUICKSTART_HOME/helloworld/ ディレクトリーにあります。helloworld クイックスタートは、サーブレットと Jakarta Contexts and Dependency Injection Bean で構成されます。また、バージョン番号が 1.1 であり、bean-discovery-modeall であるアプリケーションの WEB-INF ディレクトリーに beans.xml ファイルが含まれます。このマーカーファイルにより、WAR が Bean アーカイブとして識別され、JBoss EAP がこのアプリケーションで Bean を検索し、Jakarta Contexts and Dependency Injection をアクティベートするよう指示されます。

src/main/webapp/ ディレクトリーにクイックスタートのファイルが含まれます。このサンプルのすべての設定ファイルは、src/main/webapp/ 内の WEB-INF/ ディレクトリーにあり、beans.xml ファイルが含まれます。src/main/webapp/ ディレクトリーには index.html ファイルも含まれています。このファイルは簡単なメタリフレッシュ (meta refresh) を使用して、ユーザーのブラウザーを http://localhost:8080/helloworld/HelloWorld にあるサーブレットにリダイレクトします。このクイックスタートには web.xml ファイルは必要ありません。

コードの確認

パッケージの宣言とインポートはこれらのリストからは除外されています。完全リストはクイックスタートのソースコードで確認できます。

  1. HelloWorldServlet コードを確認します。

    HelloWorldServlet.java ファイルは src/main/java/org/jboss/as/quickstarts/helloworld/ ディレクトリーにあります。このサーブレットが情報をブラウザーに送ります。

    例: HelloWorldServlet クラスコード

    42 @SuppressWarnings("serial")
    43 @WebServlet("/HelloWorld")
    44 public class HelloWorldServlet extends HttpServlet {
    45
    46     static String PAGE_HEADER = "<html><head><title>helloworld</title></head><body>";
    47
    48     static String PAGE_FOOTER = "</body></html>";
    49
    50     @Inject
    51	   HelloService helloService;
    52
    53     @Override
    54     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    55         resp.setContentType("text/html");
    56         PrintWriter writer = resp.getWriter();
    57         writer.println(PAGE_HEADER);
    58         writer.println("<h1>" + helloService.createHelloMessage("World") + "</h1>");
    59         writer.println(PAGE_FOOTER);
    60         writer.close();
    61     }
    62
    63 }

    表2.1 HelloWorldServlet の詳細

    注記

    43

    必要な作業は @WebServlet アノテーションを追加し、サーブレットにアクセスするために使用する URL にマッピングを提供するだけです。

    46〜48

    各 Web ページには適切な形式の HTML が必要になります。本クイックスタートは静的な文字列を使用して最低限のヘッダーとフッターの出力を書き出します。

    50〜51

    これらの行は、実際のメッセージを生成する HelloService Jakarta Contexts and Dependency Injection Bean を挿入します。HelloService の API を変更しない限り、ビューレイヤーを変更せずに HelloService の実装を後で変更することが可能です。

    58

    この行はサービスを呼び出し、「Hello World」というメッセージを生成して HTTP 要求へ書き出します。

  2. HelloService コードを確認します。

    HelloService.java ファイルは src/main/java/org/jboss/as/quickstarts/helloworld/ ディレクトリーにあります。このサービスは単にメッセージを返します。XML やアノテーションの登録は必要ありません。

    例: HelloService クラスコード

    public class HelloService {
    
        String createHelloMessage(String name) {
            return "Hello " + name + "!";
        }
    }