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

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应该有解决的办法吧.看以后吧

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

分享到:
评论

相关推荐

    J2EE OA项目开发日记.doc

    《J2EE OA项目开发日记》是一篇记录开发者在J2EE平台上开发办公自动化(OA)系统的实战经验分享。文章涵盖了从项目准备到...这对于初学者快速掌握J2EE开发技术,或者有经验的开发者优化自己的开发实践都是非常有价值的。

    j2ee oa项目开发日记.rar_J2EE_J2EE 项目_数据库 人力资源_项目 文档_项目开发 文档

    1. **项目背景与需求分析**:首先,文档会介绍项目启动的原因,以及OA系统的目标和预期功能,这通常涉及到企业对提高办公效率、流程自动化的需求。需求分析阶段会明确系统的主要用户、功能模块和业务流程。 2. **...

    JSF(Java Server Faces)学习日记

    这个"JSF学习日记"的压缩包文件包含了一个作者在学习过程中创建的实例和所需的JSF库文件,这对于初学者或者希望深入理解JSF的人来说是非常有价值的资源。 JSF的核心概念包括以下几个方面: 1. **组件模型**:JSF...

    大二下--暑期见习作业(要求+code)-shang学堂

    6. **EJB(Enterprise JavaBeans)**:虽然现代JavaEE应用更多使用轻量级框架如Spring,但了解EJB的基本概念也是有益的,特别是Session Beans和Entity Beans。 7. **Web容器**:如Tomcat或Jetty,这些容器负责部署...

    java培训实习报告

    总结,这份实习报告详细涵盖了Java语言的基础知识,从语言的历史、基本语法、数据类型、控制结构到面向对象编程、异常处理、集合框架等核心概念,还包括了简单的IO流、线程和网络编程的介绍,对于初学者来说是一份...

    jsp学习笔记

    **JSP(Java Server Pages)**是Java平台上用于创建动态网页的一种技术,它结合了HTML、脚本语言(如JavaScript)和Java代码,使得开发者可以...通过阅读"JSP学习日记",你可以逐步了解这些概念,并通过实践提升技能。

    如何学习Java技术

    此外,《Enterprise JavaBeans》一书提供了关于企业级Java应用的重要知识,特别是对于那些希望掌握EJB框架的人来说。 #### 应用服务器的选择与学习 对于想要进行更深层次的企业级Java应用开发的开发者来说,选择...

Global site tag (gtag.js) - Google Analytics