[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12126] JDK5 + JBoss4.0.3SP1 + JBoss-EJB3(RC3) で EJB3 の手順



  高橋(智)です。

  本日、JavaOneにて高橋徹さんと「JBoss4 で EJB3 を試すには?」などと話していて、
既にあるサンプルをデプロイするだけはヤル気が起きない、ということになりまして、
JBossを使って、事前準備からコンパイル、デプロイ、実行を行う最少限度の手順を書く
ことにしました。
  以下に手順を掲載しますが、
  ・OSは Microsoft Windows
  ・cpやrm等のコマンドを使用している
  ・JDK5.0(Tiger) をインストール済み
  ・JBoss4.0.3(SP1)のアーカイブ jboss-4.0.3SP1.zip をダウンロード済み
  ・JBossEJB3のアーカイブ jboss-EJB-3.0_RC3.zip をダウンロード済み
が前提となっております。

  どうぞ、お試しください。> みなさま

=============================================================================================================
C:\>set JAVA_HOME=C:\j2sdk1.5

C:\>set PATH=%JAVA_HOME%\bin;%PATH%

C:\>unzip jboss-4.0.3SP1.zip
inflating...

C:\>set JBOSS_DIR=C:\jboss-4.0.3SP1

C:\>unzip jboss-EJB-3.0_RC3.zip
inflating...

C:\>cd jboss-EJB-3.0_RC3\lib

C:\jboss-EJB-3.0_RC3\lib>cp -r ejb3.deployer %JBOSS_DIR%\server\all\deploy

C:\jboss-EJB-3.0_RC3\lib>cp ejb3-clustered-sfsbcache-service.xml %JBOSS_DIR%\server\all\deploy

C:\jboss-EJB-3.0_RC3\lib>cp ejb3-entity-cache-service.xml %JBOSS_DIR%\server\all\deploy

C:\jboss-EJB-3.0_RC3\lib>cp ejb3-interceptors-aop.xml %JBOSS_DIR%\server\all\deploy

C:\jboss-EJB-3.0_RC3\lib>cp -r jboss-aop-jdk50.deployer %JBOSS_DIR%\server\all\deploy

C:\jboss-EJB-3.0_RC3\lib>cp jboss-xb.jar %JBOSS_DIR%\server\all\lib

C:\jboss-EJB-3.0_RC3\lib>rm -rf %JBOSS_DIR%\server\all\deploy\jboss-aop.deployer

C:\jboss-EJB-3.0_RC3\lib>cd %JBOSS_DIR%\bin

C:\jboss-4.0.3SP1\bin>start run.bat -c all
...
...
INFO  [Server] JBoss (MX MicroKernel) [4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1
date=200510231054)] Started in 1m:8s:208ms


C:\jboss-4.0.3SP1\bin>mkdir test

testにEchoRemote.javaを作成
-----------------------------------
package test;
import javax.ejb.Remote;
@Remote
public interface EchoRemote
{
  public String echo(String msg);
}
-----------------------------------

testにEchoBean.javaを作成
---------------------------------------------------
package test;
import javax.ejb.Stateless;
@Stateless
public class EchoBean implements EchoRemote
{
  public String echo(String msg) { return msg; }
}
---------------------------------------------------

C:\jboss-4.0.3SP1\bin>set CLASSPATH=.;%JBOSS_DIR%\server\all\deploy\ejb3.deployer\jboss-ejb3x.jar

C:\jboss-4.0.3SP1\bin>javac test\EchoRemote.java

C:\jboss-4.0.3SP1\bin>javac test\EchoBean.java

C:\jboss-4.0.3SP1\bin>jar cvf Echo.jar.ejb3 test\EchoRemote.class test\EchoBean.class
マニフェストが追加されました。
test/EchoRemote.class を追加中です。(入 = 223) (出 = 169)(24% 収縮されました)
test/EchoBean.class を追加中です。(入 = 370) (出 = 261)(29% 収縮されました)

C:\jboss-4.0.3SP1\bin>mv Echo.jar.ejb3 %JBOSS_DIR%\server\all\deploy


testにClient.javaを作成
-------------------------------------------------------------------------------------------
package test;
import java.util.Hashtable;
import javax.naming.*;
public class Client {
  public static void main(String[] args) throws Exception {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    env.put(Context.PROVIDER_URL, "jnp://localhost:1099");
    InitialContext ctx = new InitialContext(env);
    EchoRemote ejb = (EchoRemote)ctx.lookup("test.EchoRemote");
    System.out.println(ejb.echo("Hello EJB World!"));
  }
}
-------------------------------------------------------------------------------------------

C:\jboss-4.0.3SP1\bin>javac test\Client.java

C:\jboss-4.0.3SP1\bin>set CLASSPATH=.;%JBOSS_DIR%\client\jbossall-client.jar
C:\jboss-4.0.3SP1\bin>set CLASSPATH=%CLASSPATH%;%JBOSS_DIR%\server\all\deploy\ejb3.deployer\jboss-ejb3.jar
C:\jboss-4.0.3SP1\bin>set CLASSPATH=%CLASSPATH%;%JBOSS_DIR%\server\all\deploy\ejb3.deployer\jboss-ejb3x.jar
C:\jboss-4.0.3SP1\bin>set CLASSPATH=%CLASSPATH%;%JBOSS_DIR%\server\all\deploy\jboss-aop-jdk50.deployer\jboss-aspect-library-jdk50.jar

C:\jboss-4.0.3SP1\bin>java test.Client
Hello EJB World!
=============================================================================================================

-- 
高橋智宏
  Java読書会( http://www.javareading.com/bof/ )