`
starbhhc
  • 浏览: 658274 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

使用Context查找另一个EJB

    博客分类:
  • EJB
阅读更多
File: AnotherBean.java   
  
import javax.ejb.Stateless;   
  
@Stateless  
public class AnotherBean implements AnotherBeanLocal {   
  
  public void doAnother(){   
    System.out.println("from another bean");   
  }   
  
}   
  
  
File: AnotherBeanLocal.java   
  
  
public interface AnotherBeanLocal {   
  
  public void doAnother();   
  
}   
  
  
File: Employee.java   
  
  
import javax.persistence.Entity;   
import javax.persistence.EntityListeners;   
import javax.persistence.GeneratedValue;   
import javax.persistence.Id;   
import javax.persistence.PostRemove;   
  
  
  
@Entity  
  
public class Employee implements java.io.Serializable {   
  private int id;   
  
  private String firstName;   
  
  private String lastName;   
  
  @Id  
  @GeneratedValue  
  public int getId() {   
    return id;   
  }   
  
  
  @PostRemove  
  public void postRemove()   
  {   
     System.out.println("@PostRemove");   
  }   
  
  public void setId(int id) {   
    this.id = id;   
  }   
  
  public String getFirstName() {   
    return firstName;   
  }   
  
  public void setFirstName(String first) {   
    this.firstName = first;   
  }   
  
  public String getLastName() {   
    return lastName;   
  }   
  
  public void setLastName(String last) {   
    this.lastName = last;   
  }   
}   
  
  
File: EmployeeBean.java   
  
import javax.ejb.EJB;   
import javax.ejb.EJBException;   
import javax.ejb.Stateless;   
import javax.naming.Context;   
import javax.naming.InitialContext;   
import javax.naming.NamingException;   
  
@Stateless  
@EJB(name = "audit", beanInterface = AnotherBeanLocal.class)   
public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {   
  
  public EmployeeBean() {   
  }   
  
  public void doAction() {   
    System.out.println("doAction");   
    try {   
      Context ctx = new InitialContext();   
      AnotherBeanLocal a = (AnotherBeanLocal) ctx.lookup("java:comp/env/audit");   
      a.doAnother();   
    } catch (NamingException e) {   
      throw new EJBException(e);   
    }   
  }   
  
}   
  
  
File: EmployeeServiceLocal.java   
  
import java.util.Map;   
  
import javax.ejb.Local;   
  
  
@Local  
public interface EmployeeServiceLocal {   
  public void doAction();   
}   
  
  
  
File: EmployeeServiceRemote.java   
  
  
import javax.ejb.Remote;   
  
@Remote  
public interface EmployeeServiceRemote {   
  public void doAction();   
}   
  
  
File: 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  
  
  
File: Main.java   
  
import javax.ejb.EJB;   
import javax.naming.InitialContext;   
  
public class Main {   
     
  public static void main(String[] a) throws Exception {   
  
    EmployeeServiceRemote service = null;   
  
    // Context compEnv = (Context) new InitialContext().lookup("java:comp/env");   
  
    // service = (HelloService)new InitialContext().lookup("java:comp/env/ejb/HelloService");   
    service = (EmployeeServiceRemote) new InitialContext().lookup("EmployeeBean/remote");   
  
    service.doAction();   
  
  }   
  
}   
分享到:
评论

相关推荐

    EJB中JNDI的使用源码例子

    下面是一个简单的JNDI查找EJB的步骤: 1. 创建`InitialContext`:这是JNDI操作的第一步,通常在客户端或EJB内部进行。 ```java Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, ...

    一个简单的EJB实例

    2. **JNDI查找**:如何在客户端代码中使用JNDI查找EJB实例。 3. **接口编程**:理解EJB的接口定义,以及如何通过接口调用Bean的方法。 4. **部署描述符**:EJB的部署信息通常在XML文件(如ejb-jar.xml)中定义,描述...

    ejb 学习笔记6

    当两个EJB(例如EJB A和EJB B)位于同一个应用服务器上时,可以直接使用默认的JNDI上下文进行查找,而无需提供额外的JNDI入口信息。这种方式相对简单,但在JNDI名字发生改变时,代码需要调整。具体实现步骤如下: `...

    基于Java的源码-EJB中JNDI的使用源码例子.zip

    通过JNDI,开发者可以使用一个全局唯一的名称来查找EJB,这个名称称为JNDI名称。JNDI查找通常分为两个步骤:查找EJB的引用(lookup)和创建实际的EJB实例(create或activate)。 1. JNDI查找过程: - 定义JNDI名称...

    ejb学习笔记

    在EJB3中,可以使用`@EJB`注解来自动注入另一个EJB组件。例如: ```java @Stateless public class MyService { @EJB private OtherService otherService; } ``` 如果需要查找并引用EJB组件,可以使用`javax....

    EJB中JNDI的使用源码例子.7z

    下面是一个简单的JNDI查找EJB的Java代码示例: ```java import javax.naming.InitialContext; import javax.naming.NamingException; import javax.ejb.EJB; public class EJBClient { @EJB private ...

    EJB2和EJB3的架构异同.doc

    EJB3.0另一个重大改变是引入了Java Persistence API(JPA)来替代EJB2.0的实体Bean。JPA允许直接将领域模型类(Domain Model)持久化到数据库,避免了EJB2中实体Bean和Model类之间的转换。EntityManager作为JPA的...

    图解eclipse+myelcipse开发EJB2.0

    在`EJBTest`中,我们创建了一个JNDI上下文,并通过它查找并创建EJB实例,然后调用`hello()`方法。注意,`lookup`方法中的“ejb/HelloWorld”是EJB的JNDI名称,它在部署描述符中被定义。 EJB2.0的开发还包括了实体...

    \websphere部署EJB3.docx

    创建一个或多个EJB项目,例如`EJB3`,每个EJB项目都将对应一个jar包,建议遵循命名规范,如`XXXEJBModule.jar`。同样,这些EJB项目也需要添加到`WEBEJB3`项目中。 4. **部署到WebSphere**: 使用RAD,可以直接...

    Eclipse开发EJB文档

    这可以通过Eclipse中的EJB视图完成,选择“Add EJB”->“Session”来创建一个新的Session Bean。在这个示例中,我们创建了一个名为`hello`的Session Bean类。 **代码示例**: ```java package com.first.ejb; ...

    在Tomcat5.5下配置EJB

    2. **创建EJB项目**:使用IDE(如Eclipse或IntelliJ IDEA)创建一个EJB 3.0项目,并编写必要的Bean和持久化配置。 3. **编译和打包**:将EJB项目编译为JAR或WAR文件,包含所有必要的类和资源。 4. **部署EJB**:将...

    基于Java的实例源码-EJB中JNDI的使用源码例子.zip

    7. **安全性考虑**:在使用JNDI查找EJB时,应确保JNDI名称的安全性,避免被恶意用户滥用。此外,EJB还提供了细粒度的安全控制,例如角色基访问控制(Role-Based Access Control,RBAC),可以根据用户的角色决定他们...

    EJB中JNDI的使用源码例子.rar

    JNDI(Java Naming and Directory Interface)是Java中用于查找和绑定对象的一个接口,它在EJB中扮演着至关重要的角色,尤其是在查找和访问企业 Bean 实例时。这个名为“EJB中JNDI的使用源码例子.rar”的压缩包,很...

    EJB分布式远程调用的小例子的简单实现

    首先,配置JNDI上下文,并查找EJB的JNDI名称,这通常是在服务器的部署描述符(如ejb-jar.xml或web.xml)中指定的: ```java import javax.naming.InitialContext; import javax.naming.NamingException; import ...

    EJB3.0+weblogic操作文档

    EJB3.0是EJB规范的一个重大改进,它引入了注解驱动的编程模型,大大简化了EJB的开发和部署流程。在本教程中,我们将关注如何在WebLogic 11g服务器上发布和使用EJB3.0项目。 1. **无状态会话Bean(Stateless Session...

    EJB TO JMS

    `context.lookup("topic/destination")`查找并返回一个Topic对象。 6. **创建生产者**: 使用Topic会话创建一个TopicPublisher,它负责发布消息到Topic。`publisher = session.createPublisher(topic);` 7. **...

    EJB MDB JNDI配置信息

    JNDI配置主要涉及两个核心属性:`Context.INITIAL_CONTEXT_FACTORY` 和 `Context.PROVIDER_URL`。 - **`Context.INITIAL_CONTEXT_FACTORY`**:该属性指定用于创建`InitialContext`实例的工厂类名。 - **`Context....

    基于Java的EJB中JNDI的使用源码例子.zip

    1. **查找EJB组件**:开发者可以使用JNDI名称来查找部署在应用服务器上的EJB。例如,一个名为`MySessionBean`的会话bean可能有一个JNDI名称`java:global/myApp/MySessionBean!com.example.MySessionBeanInterface`。...

    javax.ejb.jar.zip

    【标题】"javax.ejb.jar.zip" 是一个与Java企业版(Java EE)相关的压缩文件,其中包含`javax.ejb.jar`这个核心组件。该组件是Java平台企业版的一部分,主要用于实现企业级Java应用中的Enterprise JavaBeans(EJB)...

Global site tag (gtag.js) - Google Analytics