1.Eclipse中新建EJB工程,添加服务器为jboss
2.编写EJB服务端代码:
(1)、AdviceHome:
package headfist;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface AdviceHome extends EJBHome {
public Advice create() throws CreateException,RemoteException;
}
(2)、Advice:
package headfist;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface Advice extends EJBObject {
public String getAdvice() throws RemoteException;
}
(3)、AdviceBean:
package headfist;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class AdviceBean implements SessionBean{
private String[] adviceStrings = {"one","two","three","four","five","six"};
@Override
public void ejbActivate() throws EJBException, RemoteException {
System.out.println("ejb activate");
}
@Override
public void ejbPassivate() throws EJBException, RemoteException {
System.out.println("ejb Passivate");
}
@Override
public void ejbRemove() throws EJBException, RemoteException {
System.out.println("ejb remove");
}
@Override
public void setSessionContext(SessionContext sessioncontext)
throws EJBException, RemoteException {
System.out.println("session context");
}
public String getAdvice() {
System.out.println("in get advice");
int random = (int) (Math.random()*adviceStrings.length);
return adviceStrings[random];
}
public void ejbCreate() {
System.out.println("in ejb create");
}
}
3、编写配置文件:
ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<display-name>Ejbl</display-name>
<enterprise-beans>
<session>
<display-name>AdviceBean</display-name>
<ejb-name>AdviceBean</ejb-name>
<home>headfist.AdviceHome</home>
<remote>headfist.Advice</remote>
<ejb-class>headfist.AdviceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
Jboss.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>AdviceBean</ejb-name>
<jndi-name>AdviceBean</jndi-name>
</session>
</enterprise-beans>
</jboss>
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
jar cvf AddCount.jar *.class META-INF/*.xml
配置类似如下:
3. 客户端代码:
import java.util.Properties;
import headfist.Advice;
import headfist.AdviceHome;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
public class Client {
public static void main(String[] args) {
new Client().go();
}
public void go() {
try{
// Properties prop = new Properties();
// prop.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
// prop.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
// prop.setProperty("java.naming.provider.url","localhost:1099");
Context ctx=new InitialContext();
Object o=ctx.lookup("AdviceBean");
AdviceHome home=(AdviceHome)PortableRemoteObject.narrow(o,AdviceHome.class);
Advice advisor=home.create();
System.out.println(advisor.getAdvice());
}catch(Exception e) {
e.printStackTrace();
}
}
}
客户端需要引入EJB服务端写的jar包,以及JBOSS服务器jar包,同时copy一份jndi.properties文件到src根目录下。
分享到:
相关推荐
WebLogic EJB学习笔记主要涵盖了企业级Java Bean(Enterprise JavaBeans,简称EJB)在Oracle WebLogic Server中的应用和管理。EJB是Java EE(Java Platform, Enterprise Edition)平台的核心组件,用于构建可扩展、...
3. **EJB部署** EJB的部署涉及编写bean的Java源代码,定义bean的行为和服务。同时,需要创建一个部署描述符(deployment descriptor),它是一个XML文件,包含了关于bean的元数据,如接口、方法、事务属性等。部署...
**EJB3.0 学习笔记** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展的、安全的、事务处理的分布式应用程序。EJB3.0是EJB的一个重大更新,引入了许多改进,使得开发过程更为简化,降低了...
### EJB学习笔记第六部分详解 #### 一、EJB之间的调用 EJB (Enterprise JavaBeans) 是Java EE平台中用于开发分布式企业应用程序的重要组件。在实际开发过程中,经常需要一个EJB调用另一个EJB来实现更复杂的业务...
综上所述,《ejb学习笔记》涵盖了从EJB的基本概念、不同类型的Bean,到其部署、配置以及与企业信息系统集成的各种细节。对于希望深入了解并掌握EJB3开发技术的开发者而言,这些知识点构成了不可或缺的基础。
【EJB学习笔记2】 EJB,全称Enterprise JavaBeans,是Java EE(现在被称为Jakarta EE)平台的一部分,主要用于构建可复用的、安全的、可伸缩的服务器端应用程序。EJB标准定义了一组规范,使得开发者可以创建分布式...
【EJB学习笔记、运行机制】 企业级程序(Enterprise Application)是围绕商业目的设计的,具有分布分层的程序架构。这种类型的程序旨在满足大型企业的复杂需求,通常涉及多个组件和层,确保系统的稳定性和可扩展性...
【EJB学习笔记】 EJB,全称为Enterprise Java Beans,是Java平台上的一个标准,用于开发和部署服务器端的分布式组件。它基于Java语言,为创建高效能、安全且可扩展的企业级应用提供了框架。EJB规范由Java ...
本资料集包含了ejb培训笔记和源代码,旨在帮助学习者深入理解EJB的工作原理及其在实际项目中的应用。 笔记部分可能涵盖以下关键知识点: 1. **EJB概述**:介绍EJB的历史、版本和基本概念,包括EJB 2.x和EJB 3.x的...
- **部署描述符(Deployment Descriptor)**:这是XML格式的配置文件,用于配置EJB的行为和部署信息,如安全角色、事务属性等。 - **生命周期方法(Life Cycle Methods)**:EJB组件有自己的生命周期,包括创建、...
3. **分布式性**:EJB组件可以在网络中的不同节点上部署和执行,实现了分布式计算。 4. **并发控制**:EJB容器管理多个客户端对组件的并发访问,避免数据冲突。 5. **生命周期管理**:EJB容器负责Bean的创建、初始...
### EJB工作原理学习笔记 #### RMI工作原理 RMI(Remote Method Invocation)是一种用于在不同的Java虚拟机(JVMs)之间进行远程过程调用的技术。它允许开发者创建分布式应用程序,这些应用程序可以在网络的不同部分...
本学习笔记将深入探讨EJB的概念、架构、类型以及如何在实际项目中应用它们。 EJB是一种服务器端的组件模型,它为开发人员提供了面向对象的方法来创建分布式的企业级应用。EJB容器负责管理组件的生命周期、提供安全...
企业级Java Beans(EJB)是一种服务器端的组件模型,用于开发和部署可重用的企业级组件。它是Java平台的一部分,专门为开发分布式网络应用而设计。EJB允许开发者将业务逻辑放入独立的组件中,这些组件可以在不同的...
在"达内培训的ejb课程笔记"中,学习者可能涵盖了以下内容: 1. EJB的基础概念和架构。 2. 如何创建和部署EJB组件,包括编写bean的类、接口、XML配置文件等。 3. EJB的生命周期管理,包括实例化、初始化、激活、钝化...
### 基于Weblogic的EJB学习笔记详解 #### EJB基础知识概览 ##### 1. 无状态会话Bean (Stateless Session Bean) 无状态会话Bean是一种不保存客户端会话状态的EJB组件。这意味着每个客户端的请求都不依赖于前一个...
EJB 3.0 版本引入了许多改进,简化了API,降低了学习曲线,使其更易于使用。 在MVC(模型-视图-控制器)架构中,EJB 主要用于开发业务层。它负责处理数据和业务逻辑,而视图层则展示数据,控制器则协调视图和模型...