打开JBuilder,新建一个EJB项目:
接下来,我们在项目中建立一个EJB:
用JBuilder来开发EJB的好处是图形界面比较直观
然后我们创建一个会话bean
菜单右键
为EJB添加方法:
HOME接口代码 - ConvertEjbHome
package ejbtest01;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
//这是home接口,负责生成EJB对象
public interface ConverEjbHome
extends EJBHome {
//create方法用来被客户端调用,返回一个远程接口引用,供客户端使用来调用业务方法
public ConverEjb create() throws CreateException, RemoteException;
}
远程接口代码 - ConvertEjb
package ejbtest01;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
//远程接口,负责让客户端通过它来调用业务方法
public interface ConverEjb
extends EJBObject {
//业务方法定义
public double getRmb(double usd) throws RemoteException;
}
EJB Bean类代码 - ConvertEjbBean
package ejbtest01;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.CreateException;
//实现类,实现了业务逻辑
public class ConverEjbBean
implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
//业务逻辑实现,不能泄漏给客户端
public double getRmb(double usd) {
//从数据库查询出汇率
double rate = 6.98;
double rmb = rate * usd;
return rmb;
}
}
JBuiler会自动配置好配置文件 - 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>EjbTestModule1</display-name>
<enterprise-beans>
<session>
<display-name>ConverEjb</display-name>
<ejb-name>ConverEjb</ejb-name>
<home>ejbtest01.ConverEjbHome</home>
<remote>ejbtest01.ConverEjb</remote>
<ejb-class>ejbtest01.ConverEjbBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>ConverEjb</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
编译项目:
将EjbTestModule1.jar上传到Web Server:
启动WebLogic:
进入WebLogic控制台:
浏览器输入:
http://localhost:7001/console
用户名:weblogic 密码: weblogic
部署模块:
测试EJB类:
在JBuilder中建立一个测试类:
右键项目->New->Add Package
包中新建一个client1类
package client;
import ejbtest01.ConverEjb;
import ejbtest01.ConverEjbHome;
import javax.rmi.PortableRemoteObject;
public class Client1 {
public static void main(String args[]) throws Exception {
Object obj = EjbFactory.getEjbHome("ConvertEjb");
//ConvertEjbHome home = (ConvertEjbHome)obj; 性能不好
ConverEjbHome home = (ConverEjbHome)PortableRemoteObject.narrow(obj,ConverEjbHome.class);
ConverEjb remote = home.create();
double usd = 456;
double rmb = remote.getRmb(usd);
System.out.println("人民币数量: " + rmb);
}
}
package client;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
public class EjbFactory {
public static Object getEjbHome(String jndiName) throws Exception {
//连接到Weblogic
Hashtable map = new Hashtable();
map.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
//指定了weblogic服务器的名称(IP),远程调用体现在这里
map.put(Context.PROVIDER_URL,"t3://localhost:7001");
map.put(Context.SECURITY_PRINCIPAL,"weblogic");
map.put(Context.SECURITY_CREDENTIALS,"weblogic");
Context context = new InitialContext(map);
//根据JNDI名称查找,查到的就是home接口
Object obj = context.lookup(jndiName);
return obj;
}
}
- 大小: 42.8 KB
- 大小: 21.1 KB
- 大小: 21.9 KB
- 大小: 18.7 KB
- 大小: 36.4 KB
- 大小: 41.2 KB
- 大小: 10.9 KB
- 大小: 10.2 KB
- 大小: 28.5 KB
- 大小: 11 KB
- 大小: 10.6 KB
- 大小: 24.3 KB
- 大小: 18.5 KB
- 大小: 45.2 KB
- 大小: 32.5 KB
- 大小: 26.2 KB
分享到:
相关推荐
综上所述,"第一个EJB访问数据库例子"这个项目将引导我们了解如何在EJB环境中设置和使用数据库连接,以及如何通过EJB组件执行SQL查询和操作。这个过程中,我们将涉及JDBC、JNDI、EJB组件类型、事务管理以及可能的JPA...
在这个“第一个EJB简单例子”中,我们将深入探讨如何创建和理解基本的EJB组件。 1. **EJB组件类型**: - **会话Bean(Session Beans)**:代表客户端的一次交互或会话。它们可以是状态ful(维护会话状态)或状态...
**jbos5**是EJB3的一个流行实现,是JBoss Application Server的第五个主要版本。它提供了一个完整的Java EE 5兼容环境,包括对EJB3的支持。JBoss AS5提供了丰富的管理和监控工具,方便开发者部署和调试EJB3应用。 *...
在EJB3.0的第一个"Hello, World"项目中,我们将学习如何创建和配置一个简单的EJB组件。首先,我们需要了解EJB的基本概念。EJB分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...
1. 创建`InitialContext`:这是JNDI操作的第一步,通常在客户端或EJB内部进行。 ```java Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, ...
EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...
EJB 3是其第三个主要版本,发布于2006年,它引入了许多重大改进,极大地简化了EJB的开发模式,降低了学习曲线,提高了开发效率。本实例源代码集就是针对EJB 3技术的实践应用展示。 EJB 3中的关键概念包括: 1. **...
**1.7 运行第一个EJB3例子** 初学者可以通过简单的示例来了解EJB3的基本概念和工作原理,如创建一个简单的无状态会话Bean并调用其方法。 **1.8 熟悉JBOSS的目录结构** 了解JBOSS的目录结构对于管理和部署EJB组件...
《精通EJB第二版》是一本深受欢迎的Java企业级应用开发教材,专注于EJB(Enterprise JavaBeans)技术。EJB是Java平台企业版(Java EE)的核心组件,用于构建可扩展、安全且可靠的分布式应用程序。这本书是学习EJB...
**ejb3 第5讲 -- 通过ANT提高EJB应用的开发效率** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建企业级应用程序。EJB 3.0是一个重要的里程碑,它极大地简化了EJB的开发,提高了开发效率。在本...
【标题】"ejb.rar_weblogic8 ejb2" 提供的是一个关于WebLogic 8.1服务器上部署和运行EJB 2(Enterprise JavaBeans第二版)的实例教程。EJB是Java企业级应用的核心组件模型,主要用于构建分布式、可伸缩且具有事务...
配置Eclipse进行EJB开发的第一步是确保安装了Java EE版本的Eclipse IDE,因为标准的Java SE版本不包含对EJB的支持。你可以通过Eclipse Marketplace或者下载插件的方式添加Java EE支持。 接下来,我们创建一个新的...
1. **部署描述符**:每个EJB都需要一个部署描述符(ejb-jar.xml)来定义其元数据,如bean的类型、接口、方法等。 2. **接口**:EJB有两种接口,本地接口(Local Interface)和远程接口(Remote Interface)。本地...
#### 三、编写第一个无状态会话Bean(Stateless Session Bean) ##### 第1步:定义远程接口 每个会话Bean都需要一个远程接口,用于定义客户端可以通过网络调用的方法。示例代码中定义了一个名为`CompanyRemote`的接口...