|
フリーで使えるEJBコンテナ「JBoss」のセットアップから動作テストまでをレポートしました。Version3から、なかなか好いようです。機能がたくさんあって、楽しいですね。 フリーで使えるEJBコンテナ「JBoss」のセットアップから動作テストまでをレポートしました。Version3から、なかなか好いようです。機能がたくさんあって、楽しいですね。 -2002.10.18 #contents #br ** インストールする -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 -ブラウザで、以下のURLを開く。 http://localhost:8080/examples/jsp/ http://localhost:8080/examples/servlets/ ** 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 を変更します。