今天终于还是下定决心看看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学习笔记(J2ee初学者必备手册)
J2EE初学者需要注意的问题,很实用,对全面了解J2EE有很大的作用
J2EE初学者ppt课件 我们上课用的 觉得有用的话就下咯
J2EE初学者要理解的几个问题
J2EE初学者需要理解的问题
BBS系统(J2EE初学教程源码)期中包括登录和注册页面极其处理(servlet),还有数据库的连接,使用的是mysql数据库。在运行的时候记得稍微修改一下用户名和密码和数据库名哦。
jap基础教程,适合j2ee初学者,够强够强大1
本资源是J2EE的课件 J2EE初学者必看的基础知识电子资料
Java教程 J2EE初学者需要理解的五个问题
J2EE初学者需要注意的问题《推荐》
* simplejee 是很多例子的大杂烩,用来演示j2ee开发的常用技术。 * 包括jsp,servlet,html,javascript,css等,以及springmvc+jdbcTemplate和 struts2+hibernate+spring, struts2+ibatis+spring 实现的登陆,...
J2EE的电子书开发文档,内容翔实,适合初学者阅读.
学习交流 共同研究 分析解决疑难问题 学习交流 共同研究 分析解决疑难问题