2006/08/25

[Sun AppServer]Tomcat透過IIOP使用Sun AppServer的EJB

前置作業:
  • 將 Sun AppServer 安裝目錄中的 lib\j2ee.jar 與 lib\appserv-rt.jar 分別放至 Tomcat 安裝目錄中的 common\lib 與 shared\lib 下
  • 在 Web 專案中, 將 EJB Module 部署至 Sun AppServer 後產生的 xxxClient.jar 檔加入 WEB-INF\lib 中

呼叫EJB的程式碼:
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.util.Hashtable;

public class JavaGetEJB {
    public static void main(String[] argv) {
        try {
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
            env.put(Context.PROVIDER_URL, "iiop//192.168.1.100:3700");
            env.put("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
            InitialContext ic = new InitialContext(env);
            Object objref = ic.lookup("corbaname:iiop:192.168.1.100:3700#ejb/HelloBean");

            HelloRemoteHome objBeanHome = (HelloRemoteHome) PortableRemoteObject.narrow(objref, HelloRemoteHome.class);
            HelloRemote objBean = objBeanHome.create();
            objBean.HelloWorld();
        } catch (Exception e) {
            e.printStackTrace(System.out);
        }
    }
}

沒有留言: