`
lbfhappy
  • 浏览: 83230 次
社区版块
存档分类
最新评论

EJB初学日记(1)

阅读更多

 

今天终于还是下定决心看看EJB,看着SPRING看了两天,觉得一点头绪都没有,我不是一个讲究速成的人,但是总是感觉和它们的理念不太一样,唉,真可怜,都怪自己,初学JAVA的时候就把J2SE看得太重了.

在学习了J2SE一整年之后,发现JAVA的应用还远远没有掌握,我学习一年的结果就是刚刚对JAVA有所了解而已,回首这一年的路,挺艰难的,但是现在以一个过来人的姿态去看的时候,我又学得很庆幸.因为我没有放弃,在我学习条件最艰苦的时候,在我最无助的时候我都没有放弃.曾经记得为了想一个小小的程序,为了实现一个小小的功能,在那里苦思冥想,想得都想吐了,还记得半夜从梦中醒来的时候,脑子里满是程序代码,甚至做梦的时候也在编程序,想算法.就这样,一年,我磕磕碰碰的走过来了.

一年后的今天,我将重新站在一个全新的起点上:J2EE,面全企业的应用,希望以后心态能像一年前一样.踏踏实实地走过.一步一个脚印.记得一年前,我刚学JAVA时,喜欢写学习日记,喜欢把自己不懂的,以及当天收获的,还有对一些程序的理解和看法记下来,并且过一段时间就去看以前写的学习日记,那时候经常会发现自己有所进步.那种感觉,真的很好.

今天算我第一天,我下面把我今天所看到的,写下来,以及自己不太了解的地方写下来,做为一个初学者最真实的心理反应和想法,也为自己J2EE之路留下些纪念.

今天下载了黎活明的EJB3.0实例教程,学了如何装JBoss4.0,第一次我下载的是免安装版,直接解压缩就可以用了,但是一直都配置不好那个EJB的应用,后来,删掉重新按照书上的地址下载了一个安装版的,并按照介始的顺序和方法安装了一遍,一布署,呵,真的可以了.看到网页打开的一霎那,真的感觉很有成就感,虽然应用都是别人写的.

由于此书用的IDE是Eclipse,可是我用的IDE是NetBeans,所以有些地方就实践不了了,但是能实践的,我都尽量会去实践一下,哪怕是抄代码,我也会亲手抄一遍.我觉得这对我们初学者来说有很大的帮助.

今天学的是会话BEAN,有状态会话BEAN和无状态会话BEAN
声明接口的代码

 

/*   
 * HelloWorld.java   
 *   
 * Created on 2006年12月7日, 下午9:26   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package lbf.demo;    
   
/**   
 *   
 * 
@author lbf   
 
*/   
public interface HelloWorld {    
        
    
/** Creates a new instance of HelloWorld */   
    
public String sayHello(String who);    
        
}   

实现接口的代码

/*   
 * HelloWorldBean.java   
 *   
 * Created on 2006年12月7日, 下午9:27   
 *   
 * To change this template, choose Tools | Template Manager   
 * and open the template in the editor.   
 
*/   
   
package lbf.demo.impl;    
   
/**   
 *   
 * 
@author lbf   
 
*/   
import lbf.demo.*;    
import javax.ejb.*;    
@Stateless   
@Remote({HelloWorld.
class})   //表示是远程调用 
public class HelloWorldBean implements HelloWorld {    
        
    
/** Creates a new instance of HelloWorldBean */   
    
public HelloWorldBean() {    
    }    
    
public String sayHello(String who){    
        
return who+"说:这是我的第一个EJB东东!!";    
    }    
}    

打包成JAR文件以后,放到JBOSS_HOME/server/all/deploy下面就可以了,JBOSS支持热布置,这一点和TOMCAT一样

只是两者的目录结构有一点不一样而已,并且它也支持WAR布署.同样也是复制到JBOSS_HOME/server/all/deploy下面

用ctx.lookup("HelloWorldBean/remote"); 来查找绑定的BEAN,一般命名规则是

在这里我要重点说明一下EJB JNDI名称默认的命名规则,命名规则如下:
1> 如果EJB应用打包成后缀为*.ear 的发布文件,默认的 JNDI 名称是
访问本地接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
访问远程接口:EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
例:如果HelloWorld应用打包成HelloWorld.ear 文件,访问她远程接口的 JNDI 名是:
HelloWorld/HelloWorldBean/remote 
 
2> 如果EJB应用打包成后缀为*.jar 的发布文件,  默认的 JNDI 名称是
访问本地接口:EJB-CLASS-NAME/local 
访问远程接口:EJB-CLASS-NAME/remote
例: HelloWorld应用打包成HelloWorld.jar 文件,访问她远程接口的 JNDI名称是:HelloWorldBean/remote
另外有一点要注意:EJB-CLASS-NAME 是不带包名的,如 com.foshanshop.ejb3.impl.HelloWorldBean只需取
HelloWorldBean。
目前网上很多教材获取JNDI名的方式都过时了,如:
HelloWorld helloworld = (HelloWorld) ctx.lookup(HelloWorld.class.getName());

stateless每次查找都会返回同一个BEAN,而stateful每次查找都会产生一个新的BEAN,用来保存特定的客户会话

那按照上面的命名规则,岂不是很容易生成相同的名字的BEAN?因为它的名字那么短,如何避免这种情况呢.EJB应该有解决的办法吧.看以后吧

希望以后的日记中能搞清楚这个问题

分享到:
评论

相关推荐

    EJB初学者PPT及JBOSS包下载

    **企业级JavaBeans(EJB)初学者指南** 企业级JavaBeans(EJB)是Java平台上用于构建可扩展、安全且事务处理能力强的企业级应用程序的核心技术。EJB规范定义了一组组件模型,允许开发人员创建分布式、多层的服务器...

    EJB初学教程分章节示例代码

    1. **EJB概述** EJB是一种服务器端组件模型,它提供了事务管理、安全性、状态管理和并发控制等服务,以简化企业级应用程序的开发。EJB组件分为三种主要类型:会话bean(Session Beans)、实体bean(Entity Beans)...

    EJB初学者常有的十一个疑惑

    ### EJB初学者常有的十一个疑惑解析 #### 一、EJB与Java Bean的区别 在探讨EJB与Java Bean的区别之前,我们首先需要明确两者的基本概念。 **Java Bean**: - **定义**:Java Bean是一种可重用的组件,没有严格的...

    ejb初学者的教程太太突然问题 特瑞

    1. **EJB组件类型**: - **会话bean(Session Beans)**:代表客户端的临时业务逻辑,可以是无状态或有状态的。无状态会话bean适用于不维护客户端状态的情况,而有状态会话bean则用于保存客户端的状态。 - **消息...

    JMS的使用范例,EJB初学者必看

    本源代码主要向EJB初学者介绍JMS的使用,如何创建和初始化一个请求Requestor对象、如何初始化请求Requestor对象、如何建立一个会话和发送请求、如何打印出请求的过程信息、如何接受由反馈者replier发回的消息等。

    ejb3.0初学者必看

    ### EJB 3.0 初学者必备知识点详解 #### 一、EJB 3.0 概述 **EJB (Enterprise JavaBeans)** 是Java平台为企业级应用程序提供的一种组件模型,它允许开发者以模块化的方式构建分布式网络计算的应用程序。EJB 3.0...

    实战EJB 实战EJB 实战EJB

    1. **打包**:将EJB类及其依赖项打包成`ejb-jar`文件。 2. **配置**:在应用服务器中配置EJB的部署信息。 3. **部署**:将`ejb-jar`文件部署到应用服务器。 **开发和部署测试程序** 1. **创建客户端应用程序**:...

    EJB3最新学习教程,适合初学者

    ### EJB3 最新学习教程知识点详解 #### 一、EJB3 概念与特点 **企业级JavaBean(EJB)**是Java...通过以上内容的学习,初学者可以系统地了解EJB3的核心概念、开发流程及高级特性,为进一步深入学习打下坚实的基础。

    精通EJB第三版

    第1篇对EJB编程基础进行介绍,它概要性地对EJB进行了阐述,无论是EJB初学者,还是资深EJB专家,这部分内容都值得阅读;第2篇重点关注EJB编程的具体内容和过程,其中,研究了如何开发如下三种EJB组件:会话Bean、实体Bean和...

    EJB 2.0企业级应用程序开发 PDF 下载

    本书内容翔实、深入浅出,提供了详细的讨论和实例,对于懂Java语言的EJB初学者是一本有益的指导书。本书所附光盘包括:WebLogic Server 6.1的试用版、WebGain's VisualCafe 4.5的试用版、 WebGain's TopLink 3.5.1的...

    EJB方面 ejb pdf

    ### EJB技术详解 #### EJB 2.0与EJB 1.1的主要区别及其应用场景 EJB(Enterprise JavaBeans)技术自1998年首次推出以来,经历了多个版本的演进,其中EJB 2.0是EJB 1.1的重要升级版,带来了诸多改进和新特性,旨在...

    EJB3.0规范-EJB3.0 SPECIFICATION

    - `ejb-3_0-fr-spec-simplified.pdf`:这个版本可能提供了一个简化的EJB3.0规范概述,方便初学者快速理解EJB3.0的关键特性。 通过深入学习这些文档,开发者可以全面掌握EJB3.0规范,有效提升在Java企业级应用开发中...

    EJB_TEST自己编写的EJB例子

    "简单易懂"表明这个EJB示例可能采用了清晰的代码结构,简单的业务逻辑,以及良好的注释,使得初学者也能快速理解其工作方式和设计思路。 综上所述,EJB_TEST是一个帮助学习者理解和实践EJB技术的示例项目,涵盖了...

    EJB3 PPT教程

    **EJB3(Enterprise JavaBeans 3)是Java EE(Enterprise Edition)平台中用于构建企业级应用程序的重要组件模型。这个PPT教程详细介绍了EJB3的各种...无论是对于初学者还是经验丰富的开发者,这都是一份宝贵的资源。

    javax.ejb.jar下载

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

    实战角度比较EJB2和EJB3的架构异同

    @EJB(name = "ejb/shopping-cart", beanName = "cart1", beanInterface = ShoppingCart.class, description = "The shopping cart for this application") private Cart myCart; ``` 在EJB3中,JNDI名称的确定可以...

    java的ejb.jar包

    javax.ejb.AccessLocalException.class javax.ejb.CreateException.class javax.ejb.DuplicateKeyException.class javax.ejb.EJBContext.class javax.ejb.EJBException.class javax.ejb.EJBHome.class javax.ejb....

    ejb_06.rar_ejb_ejb samp_ejb 源

    1. **EJB概述**: EJB是一种面向服务的组件模型,它为开发企业级应用提供了标准API。EJB组件可以在Java EE容器中运行,由容器提供资源管理、事务处理、安全性、并发控制等服务。 2. **EJB类型**: - **会话bean...

    EJB教程,EJB参考书

    本文旨在深入探讨EJB的核心技术及其在实际应用中的角色分析,为初学者提供全面的入门指南。 **1.1 EJB中的六大角色** - **1.1.1 EJB组件开发者(Enterprise Bean Provider)**:负责设计和实现EJB组件,包括定义其...

Global site tag (gtag.js) - Google Analytics