今天终于还是下定决心看看EJB,看着SPRING看了两天,觉得一点头绪都没有,我不是一个讲究速成的人,但是总是感觉和它们的理念不太一样,唉,真可怜,都怪自己,初学JAVA的时候就把J2SE看得太重了.
在学习了J2SE一整年之后,发现JAVA的应用还远远没有掌握,我学习一年的结果就是刚刚对JAVA有所了解而已,回首这一年的路,挺艰难的,但是现在以一个过来人的姿态去看的时候,我又学得很庆幸.因为我没有放弃,在我学习条件最艰苦的时候,在我最无助的时候我都没有放弃.曾经记得为了想一个小小的程序,为了实现一个小小的功能,在那里苦思冥想,想得都想吐了,还记得半夜从梦中醒来的时候,脑子里满是程序代码,甚至做梦的时候也在编程序,想算法.就这样,一年,我磕磕碰碰的走过来了.
一年后的今天,我将重新站在一个全新的起点上:J2EE,面全企业的应用,希望以后心态能像一年前一样.踏踏实实地走过.一步一个脚印.记得一年前,我刚学JAVA时,喜欢写学习日记,喜欢把自己不懂的,以及当天收获的,还有对一些程序的理解和看法记下来,并且过一段时间就去看以前写的学习日记,那时候经常会发现自己有所进步.那种感觉,真的很好.
今天算我第一天,我下面把我今天所看到的,写下来,以及自己不太了解的地方写下来,做为一个初学者最真实的心理反应和想法,也为自己J2EE之路留下些纪念.
今天下载了黎活明的EJB3.0实例教程,学了如何装JBoss4.0,第一次我下载的是免安装版,直接解压缩就可以用了,但是一直都配置不好那个EJB的应用,后来,删掉重新按照书上的地址下载了一个安装版的,并按照介始的顺序和方法安装了一遍,一布署,呵,真的可以了.看到网页打开的一霎那,真的感觉很有成就感,虽然应用都是别人写的.
由于此书用的IDE是Eclipse,可是我用的IDE是NetBeans,所以有些地方就实践不了了,但是能实践的,我都尽量会去实践一下,哪怕是抄代码,我也会亲手抄一遍.我觉得这对我们初学者来说有很大的帮助.
今天学的是会话BEAN,有状态会话BEAN和无状态会话BEAN
声明接口的代码
-
-
-
-
-
-
-
-
-
- package lbf.demo;
-
-
-
-
-
- public interface HelloWorld {
-
-
- public String sayHello(String who);
-
- }
实现接口的 代码
-
-
-
-
-
-
-
-
-
- package lbf.demo.impl;
-
-
-
-
-
- import lbf.demo.*;
- import javax.ejb.*;
- @Stateless
- @Remote({HelloWorld.class}) //表示是远程调用
- public class HelloWorldBean implements HelloWorld {
-
-
- 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学习笔记(J2ee初学者必备手册)"是为初学者量身定制的指导资料,旨在帮助新手快速掌握J2EE的核心概念和技术。 **J2EE架构与组件** J2EE架构基于分层设计,主要包含以下层次: 1. **客户端层**:用户...
### J2EE初学者需要注意的问题 #### 一、J2EE体系结构简介 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为解决企业级应用开发中遇到的复杂性和标准化问题而提出的一套解决方案。它基于Java技术...
**J2EE初学者课程概览** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一个多层架构,支持分布式、可伸缩性和安全性的应用开发。本课程是专为J2EE初学者设计的...
【J2EE初学学习教程】是一份针对Java企业级应用开发的学习资料,重点介绍了基于MVC模式的一体化开发过程。在这个过程中,UML(统一建模语言)被用来描述用户需求,进行对象导向的分析(OOA)和设计(OOD)。 1. **...
**BBS系统与J2EE初学教程源码详解** J2EE(Java 2 Platform, Enterprise Edition)是一个用于开发企业级应用的平台,它提供了丰富的功能和组件,支持多层分布式架构,使得开发者能够构建可扩展且健壮的网络应用。本...
**J2EE初学者开发文档** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它为开发者提供了构建分布式、多层应用程序所需的全面服务。这个电子书开发文档旨在为初学者提供一个...
J2EE(Java 2 Platform, Enterprise Edition)是一个由SUN公司推出的用于构建企业级应用的Java...理解这些核心概念是J2EE初学者的基础,随着学习的深入,还需要掌握如何使用这些工具和技术来构建实际的企业级应用程序。
以下是对J2EE初学者需要理解的五个关键问题的详细解释: 1. **J2EE提出的背景**: 在企业级应用开发中,诸如数据库连接、邮件服务和事务处理等功能是常见的需求。为了避免重复开发这些模块导致的时间成本增加和...
**J2EE初学者需要理解的问题** J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems(后来被Oracle收购)推出的企业级应用平台,基于Java技术,旨在提供一套规范和标准,以便开发、部署和管理分布式...
**J2EE初学者必看的基础知识电子课件** J2EE(Java 2 Platform, Enterprise Edition)是一种用于构建企业级分布式应用的平台,由Oracle公司维护。它为开发和部署多层、跨平台的应用程序提供了全面的框架。对于初学...
### J2EE初学者需要注意的问题 #### 一、J2EE提出的背景及重要性 ##### 企业级应用框架的需求 J2EE(Java 2 Platform, Enterprise Edition)最初是为了满足企业级应用的需求而诞生的。在传统的软件开发过程中,很...
### JSP基础教程:j2ee初学者指南 #### JSP概念回顾与解析 JavaServer Pages(简称JSP)是一种动态网页技术标准,它在传统的HTML基础上嵌入了Java代码,使得网页具备了动态生成的能力。JSP由Sun Microsystems公司...
* simplejee 是很多例子的大杂烩,用来演示j2ee开发的常用技术。 * 包括jsp,servlet,html,javascript,css等,以及springmvc+jdbcTemplate和 struts2+hibernate+spring, struts2+ibatis+spring 实现的登陆,...
如果你是一名初学者,掌握这些核心概念和技术是至关重要的。以下是从标题和描述中提取的关键知识点,以及相关的详细解释: 1. **Java**: Java 是一种广泛使用的面向对象的编程语言,以其跨平台性、安全性以及性能而...