Last-modified: 2003-12-15 (月) 15:48:50 (7431d)

 フリーで使えるEJBコンテナ「JBoss」のセットアップから動作テストまでをレポートしました。Version3から、なかなか好いようです。機能がたくさんあって、楽しいですね。 -2002.10.18

 

インストールする

  • http://www.jboss.org/downloads.jsp からBinary Packageを入手。今回は[JBoss-3.0.3_Tomcat-4.0.5.zip(28.5MB)]
  • zipファイルをC:\に展開する。 (C:\jboss-3.0.3_tomcat-4.0.5) <- 展開する場所はどこでもいいです。

JBoss環境変数の設定(一応、念のため)

  • システム環境変数に追加
  • 変数:JBOSS_DIST 値:C:\jboss-3.0.3_tomcat-4.0.5
  • 変数:TOMCAT_HOME 値:C:\jboss-3.0.3_tomcat-4.0.5\catalina

動作確認

  • %JBOSS_DIST%\bin\run.batを実行して、起動する。
  • %JBOSS_DIST%\catalina\webapps\examples\WEB-INF\web.xmlの以下の部分を削除する。(EJBが作成されていない状態でパッケージされているので)
<!-- EJB Reference -->
<ejb-ref>
<description>Example EJB Reference</description>
<ejb-ref-name>ejb/Account</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.mycompany.mypackage.AccountHome</home>
<remote>com.mycompany.mypackage.Account</remote>
</ejb-ref>

<!-- Local EJB Reference -->
<ejb-local-ref>
<description>Example Local EJB Reference</description>
<ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>
<local>com.mycompany.mypackage.ProcessOrder</local>
</ejb-local-ref>
  • 手動でexamples.warを作成し、デプロイする。(ホットデプロイ)
    >cd %JBOSS_DIST%\catalina\webapps\examples
    >jar cf ..\examples.war *
    >copy %JBOSS_DIST%\catalina\webapps\examples.war %JBOSS_DIST%\server\default\deploy

MySQLとのJDBC接続設定

  • http://www.mysql.com/downloads/ から MySQL Connector/J 2 を入手。今回は[mysql-connector-java-2.0.14.zip(435KB)]
  • 以下のディレクトリにコピーする。
    %JBOSS_DIST%\server\default\lib\mysql-connector-java-2.0.14-bin.jar
  • %JBOSS_DIST%\docs\examples\jca\mysql-service.xml を以下のディレクトリにコピーする。
    %JBOSS_DIST%\server\default\deploy\mysql-service.xml
  • %JBOSS_DIST%\server\default\deploy\mysql-service.xmlの設定(「MySqlDS」で参照)
<mbean code="org.jboss.resource.connectionmanager.RARDeployment" name="jboss.jca:service=LocalTxDS,name=MySqlDS">
<attribute name="JndiName">MySqlDS</attribute>
<attribute name="ManagedConnectionFactoryProperties">
<properties>
<config-property name="ConnectionURL" type="java.lang.String">jdbc:mysql://{hostname}:3306/{dbname}</config-property>
<config-property name="DriverClass" type="java.lang.String">org.gjt.mm.mysql.Driver</config-property>
<!--set these only if you want only default logins, not through JAAS -->
<config-property name="UserName" type="java.lang.String">{username}</config-property>
<config-property name="Password" type="java.lang.String">{password}</config-property>
</properties>
</attribute>
<!--Below here are advanced properties -->
<!--hack-->
<depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
</mbean>
  • クライアントサンプル
Context ctx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:/MySqlDS");
java.sql.Connection con = ds.getConnection();

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT value FROM t1 WHERE id = " + id.intValue());
String retStr = null;
while (rs.next()) {
retStr = rs.getString("value");
}
return retStr;

<<おまけ>>

  • ログの制御
    • %JBOSS_DIST%\server\default\conf\log4j.xml の中の「TRACE、DEBUG、INFO、WARN、ERROR、FATAL」指定を変更することで行います。
    • jbossサーバのログは以下のパスに作成されます。
      %JBOSS_DIST%\server\default\log\server.log
      %JBOSS_DIST%\server\default\log\localhost_accessXXXX-XX-XX.log
  • junit.jar を以下のディレクトリにコピーしておくと、テスト実行時に参照するのが楽になります。
    %JBOSS_DIST%\server\default\lib\junit.jar
  • クライアントプログラムを作成して動かす場合は、%JBOSS_DIST%\client\*.jar ファイルをCLASSPATHに追加して実行します。
  • クライアントと接続EJBサーバが別のマシンの場合は、jndi.properties ファイルの java.naming.provider.url を変更します。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS