Advanced Server-Side Programming J2EEプログラマのためのEJBパーフェクトガイド

Advanced Server-Side Programming

J2EEプログラマのためのEJBパーフェクトガイド

サンプルプログラム


ディレクトリ構造

各サンプルのソースコードはすべてsrcディレクトリ以下にあります。 そして、各サンプルごとのデプロイメント記述子やAntのためのbuild.xmlは、 "ejb_"で始まるディレクトリに格納されています。

|-- README.html
|-- ejb_bmpeb_sample6
|-- ejb_cmpeb_sample1
|-- ejb_cmpeb_sample2
|-- ejb_cmpeb_sample3
|-- ejb_cmpeb_sample4
|-- ejb_cmpeb_sample5
|-- ejb_ebenv_sample1
|-- ejb_ebenv_sample2
|-- ejb_ebenv_sample3
|-- ejb_ejbql_sample1
|-- ejb_ejbql_sample2
|-- ejb_ejbql_sample3
|-- ejb_jms_sample1
|-- ejb_jms_sample2
|-- ejb_jms_sample3
|-- ejb_jms_sample4
|-- ejb_jms_sample5
|-- ejb_security_sample1
|-- ejb_security_sample2
|-- ejb_security_sample3
|-- ejb_statefulsb_sample1
|-- ejb_statefulsb_sample2
|-- ejb_statefulsb_sample3
|-- ejb_statefulsb_sample4
|-- ejb_statelesssb_sample5
|-- ejb_transaction_sample1
|-- ejb_transaction_sample2
|-- ejb_transaction_sample3
|-- ejb_verysimple
|-- build
`-- src
    `-- com
        `-- tiger
  ...

サンプルの実行方法

すべてのサンプルは、サンプルをコンパイル、パッケージングするためにAntを 用いています。各サンプルのためのbuild.xmlは、"ejb_"で始まる各サンプル のディレクトリ内にあります。

すべてのbuild.xmlは、JBossがインストールされているディレクトリを特定する ためにJBOSS_HOMEという環境変数を参照していますので、JBOSS_HOMEが正しく 設定されている必要があります。また、いくつかのサンプルではPostgreSQLの インストールされているディレクトリを特定するために、POSTGRES_HOMEも参照 していますので、この環境変数も正しく設定する必要があります。

サンプルをJBossへ配備するには、それぞれのサンプルの"ejb_"で始まるディレクトリへ 移動し、その後、

ant deploy
と入力します。

ほとんどのサンプルでは、配備後に

ant test
と入力することで、サンプルを実行 させることができます。しかしながら、いくつかのWebを用いているサンプルでは ant testと入力した後に表示されるURLに、Webブラウザからアクセスする 必要があります。

また、配備を解除するには

ant undeploy
と入力します。

注意点としまして、サンプルを実行する際は、必ず他のすべてのサンプルの配備を解除して 行ってください。でないと、JNDI名やテーブル名の衝突により、正しく動作しない場合があります。

すべてのソースコード、HTMLファイル、JSPファイルはエンコーディングとして シフトJISを用いています。このため、Linux上で動作させるためにはEUCへ エンコーディングを変更する必要があるかもしれません。

サンプルの中には、サンプルを実行するためにあらかじめデータベース上にテーブルを作成 したりデータを作成しておく必要のあるものがあります。このため、AntからSQLタスクを用いて PostgreSQLにアクセスしているものもあります。この際、データベース名、データベースへの ログイン時のユーザ名、パスワード、JDBCドライバが含まれているJARファイルへの パスを正しく設定する必要があります。デフォルトでは以下のように設定されているはずです。

    <property name="database.name" value="postgres"/>
    <property name="database.username" value="postgres"/>
    <property name="database.password" value="postgres"/>
    <property name="database.driver.jar" value="${env.POSTGRES_HOME}/share/java/postgresql.jar"/>
SQLタスクを用いていると書かれているサンプルを実行する際は、 build.xmlの最初にあるinitターゲット内のパラメータを環境に合わせて変更する必要があります。

収録サンプル一覧

  1. 2章 サンプル1 (ejb_verysimple)
  2. 4章 サンプル1 (ejb_statefulsb_sample1)
  3. 4章 サンプル2 (ejb_statefulsb_sample2)
  4. 4章 サンプル3 (ejb_statefulsb_sample3)
  5. 4章 サンプル4 (ejb_statefulsb_sample4)
  6. 4章 サンプル5 (ejb_statelesssb_sample5)
  7. 5章 サンプル1 (ejb_cmpeb_sample1)
  8. 5章 サンプル2 (ejb_cmpeb_sample2)
  9. 5章 サンプル3 (ejb_cmpeb_sample3)

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample3
    にアクセスしてください。

  10. 5章 サンプル4 (ejb_cmpeb_sample4)

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample4
    にアクセスしてください。

  11. 5章 サンプル5 (ejb_cmpeb_sample5)
  12. 5章 サンプル6 (ejb_bmpeb_sample6)

    build.xml内でSQLタスクを使用しています。build.xml内のパラメータを 環境に合わせて設定してください。

    Antを用いない場合は、まずpsqlを起動し以下のようにしてcustomerテーブル を作成する必要があります。

    \i create_customer_table.sql

  13. 6章 サンプル1 (ejb_transaction_sample1)

    build.xml内でSQLタスクを使用しています。build.xml内のパラメータを 環境に合わせて設定してください。

    Antを用いない場合は、まずpsqlを起動し以下のようにしてflightbookingテーブル を作成する必要があります。

    \i create_flightbooking_table.sql

  14. 6章 サンプル2 (ejb_transaction_sample2)

    build.xml内でSQLタスクを使用しています。build.xml内のパラメータを 環境に合わせて設定してください。

    Antを用いない場合は、まずpsqlを起動し以下のようにしてflightbookingテーブル を作成する必要があります。

    \i create_flightbooking_table.sql

  15. 6章 サンプル3 (ejb_transaction_sample3)

    build.xml内でSQLタスクを使用しています。build.xml内のパラメータを 環境に合わせて設定してください。

    Antを用いない場合は、まずpsqlを起動し以下のようにしてbankaccountテーブル にデータを登録する必要があります。

    \i insert_bankaccount_data.sql

  16. 7章 サンプル1 (ejb_ebenv_sample1)
  17. 7章 サンプル2 (ejb_ebenv_sample2)

    まず、サンプルを実行する前にSMTPサーバをJBOSS_HOME/server/default/deploy内の mail-service.xml内に設定する必要があります。

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample2
    にアクセスしてください。

  18. 7章 サンプル3 (ejb_ebenv_sample3)

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample3/stockprice.jsp
    にアクセスしてください。

  19. 8章 サンプル1 (ejb_security_sample1)

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample1/servlet/SecurityTestServlet
    にアクセスしてください。

  20. 8章 サンプル2 (ejb_security_sample2)

    まず、サンプルを実行する前にディレクトリ内にあるlogin-conf.xmlの内容を JBOSS_HOME/server/default/conf内のlogin-conf.xmlに追加する必要があります。

    Webアプリケーションですので、実行するためにはWebブラウザで

    http://localhost:8080/sample2/servlet/SecurityTestServlet
    にアクセスしてください。

    build.xml内でSQLタスクを使用しています。build.xml内のパラメータを 環境に合わせて設定してください。

    Antを用いない場合は、まずpsqlを起動し以下のようにしてPrincipals、Rolesテーブル を作成し、続けてデータを登録する必要があります。

    \i create_users_table.sql
    \i insert_users.sql

  21. 8章 サンプル3 (ejb_security_sample3)

    サンプルを実行する前にディレクトリ内のusers.propertiesとroles.propertiesを JBOSS_HOME/server/default/conf内にコピーし、JBossを再起動してください。

  22. 9章 サンプル1 (ejb_ejbql_sample1)
  23. 9章 サンプル2 (ejb_ejbql_sample2)
  24. 9章 サンプル3 (ejb_ejbql_sample3)

    サンプルを実行する前にディレクトリ内にあるsampleTopic_Queue.xml内の内容を JBOSS_HOME/server/default/deploy内にあるjbossmq-destinations-service.xml に追加する必要があります。

  25. 10章 サンプル1 (ejb_jms_sample1)

    サンプル1と同様にsampleTopic_Queue.xmlの内容を設定してください。

  26. 10章 サンプル2 (ejb_jms_sample2)

    サンプル1と同様にsampleTopic_Queue.xmlの内容を設定してください。

  27. 10章 サンプル3 (ejb_jms_sample3)

    サンプル1と同様にsampleTopic_Queue.xmlの内容を設定してください。

  28. 10章 サンプル4 (ejb_jms_sample4)

    サンプル1と同様にsampleTopic_Queue.xmlの内容を設定してください。

  29. 10章 サンプル5 (ejb_jms_sample5)

    サンプル1と同様にsampleTopic_Queue.xmlの内容を設定してください。