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

JBoss EJB3 無狀態 Session Bean 開發入門範例

     編輯:J2EE

元件結構

  • RemoteHelloWorld:遠端業務介面
  • LocalHelloWorld:本地業務介面
  • HelloWorldBean:無狀態 Session Bean 實作類別
  • jndi.properties:客戶端 JNDI 設定
  • hello.jsp:測試頁面

代碼實作

// Remote 介面
package com.yourcompany.ejb3;
public interface RemoteHelloWorld {
    String say(String name);
}

// Local 介面
package com.yourcompany.ejb3;
public interface LocalHelloWorld {
    String say(String name);
}

// Bean 實作
package com.yourcompany.ejb3;
import javax.ejb.*;

@Remote(RemoteHelloWorld.class)
@Local(LocalHelloWorld.class)
@Stateless
public class HelloWorldBean implements RemoteHelloWorld, LocalHelloWorld {
    public String say(String name) {
        return "這是一個無狀態的 EJB3 Session Bean,作者:" + name;
    }
}

JNDI 設定 (jndi.properties)

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099

JSP 客戶端調用

<%
Properties props = new Properties();
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("jndi.properties"));
InitialContext ctx = new InitialContext(props);

RemoteHelloWorld remote = (RemoteHelloWorld) ctx.lookup("HelloWorldBean/remote");
out.println(remote.say("Christina007[remote]") + "<br/>");

LocalHelloWorld local = (LocalHelloWorld) ctx.lookup("HelloWorldBean/local");
out.println(local.say("Christina007[local]"));
%>

執行結果

這是一個無狀態的 EJB3 Session Bean,作者:Christina007[remote]
這是一個無狀態的 EJB3 Session Bean,作者:Christina007[local]

開發步驟總結

  1. 定義業務介面 (Remote/Local)
  2. 實作 Bean 類別,加上 @Stateless、@Remote、@Local 註解
  3. 打包部署至 JBoss (EJB3 專案結構)
  4. 客戶端配置 JNDI,透過 InitialContext.lookup() 取得 Proxy 呼叫
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved