首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

WebLogic 8.1 上開發與部署 Session EJB 完整指南

     編輯:Java 相關知識

環境與目標

本文以 J2EE SDK 1.4 + WebLogic 8.1 為執行環境,示範無狀態 Session Bean 的完整開發、編譯、打包、部署與測試流程,適合初學者快速上手 EJB 2.x 開發。

核心元件程式碼

1. Home Interface(HelloHome)

package ejb.hello;
import javax.ejb.*;
import java.rmi.RemoteException;

public interface HelloHome extends EJBHome {
    Hello create() throws CreateException, RemoteException;
}

2. Remote Interface(Hello)

package ejb.hello;
import javax.ejb.EJBObject;
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends EJBObject, Remote {
    String getHello() throws RemoteException;
    String getStr() throws RemoteException;
}

3. Bean 實作類(HelloBean)

package ejb.hello;
import javax.ejb.*;
import java.rmi.RemoteException;

public class HelloBean implements SessionBean {
    private SessionContext ctx;
    private static final boolean VERBOSE = true;

    public void ejbCreate() { if (VERBOSE) System.out.println("ejbCreate"); }
    public void ejbActivate() { if (VERBOSE) System.out.println("ejbActivate"); }
    public void ejbPassivate() { if (VERBOSE) System.out.println("ejbPassivate"); }
    public void ejbRemove() { if (VERBOSE) System.out.println("ejbRemove"); }
    public void setSessionContext(SessionContext ctx) { this.ctx = ctx; }

    public String getStr() throws RemoteException {
        return "...My First EJB Test!!...";
    }
}

4. 客戶端測試程式

package ejb.hello;
import javax.naming.*;
import javax.ejb.*;
import java.util.Hashtable;
import java.rmi.RemoteException;

public class HelloClient {
    public static void main(String[] args) {
        String url = "t3://localhost:7001";
        try {
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            env.put(Context.PROVIDER_URL, url);
            Context ctx = new InitialContext(env);
            HelloHome home = (HelloHome) ctx.lookup("HelloHome");
            Hello hello = home.create();
            System.out.println(hello.getStr());
        } catch (Exception e) { e.printStackTrace(); }
    }
}

部署描述檔與 WebLogic 專屬設定

ejb-jar.xml(標準描述檔)

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
  <enterprise-beans>
    <session>
      <ejb-name>Hello</ejb-name>
      <home>ejb.hello.HelloHome</home>
      <remote>ejb.hello.Hello</remote>
      <ejb-class>ejb.hello.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>
  </enterprise-beans>
  <assembly-descriptor>
    <container-transaction>
      <method><ejb-name>Hello</ejb-name><method-name>*</method-name></method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>

weblogic-ejb-jar.xml(WebLogic 綁定 JNDI 名稱)

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-ejb-jar>
  <weblogic-enterprise-bean>
    <ejb-name>Hello</ejb-name>
    <jndi-name>HelloHome</jndi-name>
  </weblogic-enterprise-bean>
</weblogic-ejb-jar>

打包與部署步驟

  1. javac -d build *.java 編譯至 build 目錄。
  2. 建立 build/META-INF,放入上述兩個 XML 檔。
  3. jar cvf Hello2.jar META-INF ejb 產生標準 EJB JAR。
  4. java weblogic.ejbc -compiler javac build/Hello2.jar build/Hello.jar 執行 WebLogic EJB 編譯器產生廠商專用 JAR。
  5. 啟動 WebLogic Console (https://localhost:7001/console),部署 Hello.jar。

測試驗證

cd build
java ejb.hello.HelloClient

主控台輸出 Bean 回傳字串即代表部署成功。

小結

掌握 Home/Remote/Bean 三介面、標準與廠商描述檔、ejbc 編譯、Console 部署五大關鍵點,即能在 WebLogic 上順利運行 Session EJB。後續可延伸至有狀態 Bean、CMP Entity Bean 與交易屬性微調。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved