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

EJB 3.0 入門範例:無狀態 Session Bean 完整實作

     編輯:Java 相關知識

架構概覽

  • 伺服器:JBoss AS
  • 客戶端需引入 jbossall-client.jar
  • 元件:Remote/Local 介面 + 無狀態 Bean 實作 + 客戶端 JNDI 查找

程式碼結構

// HelloBeanRemote.java
@Remote
public interface HelloBeanRemote {
    String sayHello(String name);
}

// HelloBeanLocal.java
@Local
public interface HelloBeanLocal { }

// HelloBean.java
@Stateless
public class HelloBean implements HelloBeanLocal, HelloBeanRemote {
    public String sayHello(String name) {
        System.out.println("伺服器端輸出:" + name);
        return "Hello, " + name;
    }
}

// HelloBeanClient.java
public class HelloBeanClient {
    public static void main(String[] args) throws Exception {
        Properties props = new Properties();
        props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        props.setProperty("java.naming.provider.url", "127.0.0.1:1099");
        props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
        InitialContext ctx = new InitialContext(props);
        HelloBeanRemote remote = (HelloBeanRemote) ctx.lookup("HelloBean/remote");
        System.out.println(remote.sayHello("Beijing"));
        ctx.close();
    }
}

關鍵點解析

  1. @Stateless 宣告無狀態 Session Bean,容器管理生命週期與池化。
  2. @Remote/@Local 分離遠端與本地介面,客戶端透過 JNDI 名稱 EJB名/remote 查找。
  3. JBoss 專屬 JNDI 參數:org.jnp.interfaces.NamingContextFactory、jnp://host:1099。
  4. 部署打包為 .jar 放入 server/default/deploy,JBoss 自動偵測註解部署。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved