http://book.51cto.com/art/201102/244682.htm
package impl;
import itf.Convert;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless (mappedName="ConvertBean") // EJB是可以被远程调用的。 JNDI名称为"ConvertBean //Stateless 无状态
@Remote
public class ConvertBean implements Convert {
public String getRmb(String usd){
//从数据库查询汇率,此处简化,假如汇率是6.0
double rate = 6.0;
double dblUsd = Double.parseDouble(usd);
double dblRmb = dblUsd * rate;
String rmb = String.valueOf(dblRmb);
return rmb;
}
}
客户端:
public static void main(String[] args) throws Exception{
String usd = "1234";
String jndiName = "ConvertBean#itf.Convert";
Hashtable table = new Hashtable();
table.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
table.put(Context.PROVIDER_URL,"t3://localhost:7001");
//查询服务器中的jndiName
Context context = new InitialContext(table);
Convert convert = ( Convert) context.lookup(jndiName);
String rmb = convert.getRmb(usd);
System.out.println(rmb);
}
-------------------------------------------------------------------------
既然是一个EJB为一个客户服务,是否会出现大量的EJB对象消耗内存的情况呢?实际上,EJB中的"钝化"机制,会让长期不用的EJB对象,过了一段时间从内存中腾出空间,存入缓存。
@Stateful (mappedName="ConvertBean") //Stateful 有状态的
@Remote
public class ConvertBean implements Convert {
……
@Remove
public void remove(){
//释放资源
}
将JNDI名称写在配置文件中。
首先将"@Stateful (mappedName="ConvertBean")"改为"@Stateful"。编写配置文件的方法如下:
1. 在项目的META-INF下新建ejb-jar.xml
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>ConvertBean</ejb-name>
<mapped-name>ConvertBean</mapped-name>
</session>
</enterprise-beans>
</ejb-jar>
分享到:
相关推荐
在EJB1的时代,这是Java EE(现在被称为Jakarta EE)框架的一个早期版本,主要用于开发分布式、事务处理和安全的企业级应用程序。 在"学习EJB1"这个主题中,我们主要会探讨以下几个核心知识点: 1. **EJB组件类型*...
在提供的文件名列表中,我们可以看到ejb1到ejb5可能代表EJB的不同版本,从早期的EJB 1.x到EJB 5(实际上是EJB 3.1,因为EJB 5尚未正式发布)。myweb可能包含一个Web应用程序,该应用可能使用EJB作为其后端服务。ejb4...
文件列表中提到的“EJB1”可能是一个包含示例EJB项目的压缩包,可能包含了ejb-jar文件、源代码、部署描述符以及相关的教程文档。解压并研究这个文件,可以帮助你深入了解EJB的工作原理和实际应用。 在实际项目中,...
EJB2是EJB规范的第二个主要版本,相较于EJB1,它提供了更多的功能和改进,使得企业级开发更加方便。 在EJB2中,主要存在三种类型的Bean: 1. **Session Bean**:处理复杂的业务逻辑,它们是无状态或有状态的。无...
1. **通过WebLogic Console部署**:登录到WebLogic控制台,在`Deployments -> EJB -> Install EJB`中选择之前生成的JAR文件进行部署。 2. **手动部署**:虽然文中提到不推荐使用这种方法,但为了完整性这里也给出...
1. WAR部署:如果你的EJB只服务于Web组件,可以将EJB打包到WAR文件中,与Web应用一起部署。在WEB-INF目录下创建lib子目录,放入ejb-jar文件。 2. EAR部署:如果EJB服务多个模块或包含其他资源,应创建一个EAR...
1. **打包**:将EJB类及其依赖项打包成`ejb-jar`文件。 2. **配置**:在应用服务器中配置EJB的部署信息。 3. **部署**:将`ejb-jar`文件部署到应用服务器。 **开发和部署测试程序** 1. **创建客户端应用程序**:...
1. **EJB类型**:EJB有三种主要类型,分别是会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。会话bean处理客户端的交互,实体bean持久化数据到数据库,消息驱动bean...
EJB2是EJB规范的第二代版本,发布于2001年,它在EJB1的基础上进行了许多改进,引入了更多的特性以提升开发效率和系统性能。 1. **EJB2组件类型**: - **会话bean(Session Beans)**:提供了业务逻辑,可以分为无...
EJB经历了多个版本的发展,从最初的EJB 1.x到EJB 3.x。EJB 3.x引入了注解(Annotations)和POJO(Plain Old Java Object)的概念,大大简化了开发过程,使得EJB更加轻量级和易用。 **EJB与J2EE的关系** J2EE(现在...
在实例92EJB1中,我们可能涉及创建一个简单的会话Bean,首先定义Bean的接口和实现类,然后在接口中声明业务方法,实现类中提供具体实现。接着,在ejb-jar.xml或使用注解(如`@Stateless`)来配置Bean。最后,客户端...
- EJB 1.x:早期版本,主要关注远程方法调用(RMI)和EJB 1.1引入的会话Bean。 - EJB 2.x:增加了接口基于的编程模型,实体Bean使用JPA(Java Persistence API)进行持久化,引入了CMP(容器管理持久性)和BMP...
通过提供的EJB1压缩包文件,你可以找到具体的代码示例,了解如何在实际开发中应用上述概念和技术。对于初学者来说,这些实例是一个很好的起点,可以帮助理解和掌握EJB3.0的编程模型和最佳实践。通过实际操作,你可以...
EJB技术经历了多个版本的迭代,从最初的EJB 1.x到EJB 3.x,引入了大量的改进。EJB 3.x(特别是EJB 3.1和3.2)引入了注解驱动的编程模型,大大减少了XML配置,使得EJB更加轻量级和易于使用。 4. **依赖注入** EJB ...
### EJB技术详解 #### EJB 2.0与EJB 1.1的主要区别及其应用场景 EJB(Enterprise JavaBeans)技术自1998年首次推出以来,经历了多个版本的演进,其中EJB 2.0是EJB 1.1的重要升级版,带来了诸多改进和新特性,旨在...
1. **EJB 1.x**:早期版本,接口复杂,使用困难。 2. **EJB 2.x**:引入了EJB 2.1,增加了CMP(Container-Managed Persistence),简化了实体Bean的使用,但仍较为繁琐。 3. **EJB 3.0**:显著简化了API,引入了注解...
EJB2是EJB规范的一个版本,它在EJB1的基础上进行了扩展和完善,为开发人员提供了更强大的功能,特别是对于业务逻辑处理的Session Bean。 Session Bean是EJB组件类型之一,主要负责表示应用的业务逻辑。它们是无状态...
1. **EJB 1.x**: EJB 1.x时期,EJB主要分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean(Message-Driven Beans)。这个阶段的EJB编写复杂,依赖于EJB容器的API,开发难度大。 2....
1. **新建EJB 3.0项目**: - 打开JBoss IDE,在`Package Explorer`视图中选择`File > New > EJB 3.0 Project`。 - 输入项目名称,例如“HelloEJB”,并选择一个EJB服务器,例如之前配置的JBoss服务器。 - 完成设置...