分享
 
 
 

EJB系列教程

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

EJB系列教程之一(JBuilder4+IAS41+Vbj411基本设置)

------东方一蛇原创,如要转载请注明原作者和网站。

一、前言

首先说明,我对JB4(JBuilder4),IAS41(Inprise Application Server)和Vbj411(VisiBroker For Java)不熟悉,只是自己看了些英文文档配置和测试了一下,成功了,就将这个写出来,也许对大家有点用处。对于JB4,IAS41和Vbj411的资料可以去Inprise网站(http://www.inprise.com/)去查阅。

二、下载,安装

下载地址为Inprise官方站点:www.inprise.com,国内也有,但是比较难找。

Win2000下,安装过程就没有什么说的了,直接运行setup就可以了。

三、配置JBuilder4

安装完JB4后,默认的情况下,File --> New --->Enterprise下的很多东西应该都是灰色的,不能用,要先安装并且配置好IAS,Vbj才能够用的。

(1)Tools Menu -->Enterprise Setup --->CORBA

CORBA选中“VisiBroker”然后EDIT

在Path for ORB tools下,加入IAS4的bin目录(这个方法比较简单)

在Library for projects下,加入IAS4的lib,具体方法是:点“...”,然后New将出现一个新的对话框,输入你想要的名字,然后“Add”,找到IAS4的lib目录将其加入进来。最后连续OK,OK...

(2)Tools Menu -->Enterprise Setup --->Application Server

IAS4.1下的“IAS installation directory”下框中加入IAS的安装目录。

(3)Project -->Default Project Properties --->Paths

Required Libraries中加入IAS4的lib下所有jar,具体方法:Add -->New,然后取个你想要的名字,然后,Add,找到IAS4的lib下所有jar,并且加进来。最后,又是连续几个“OK”... ...

好了,安装配置工作做好了,在下一文中,我将简单的翻译一篇英文文档,用JBuilder4自己做一个Session Bean EJB,然后通过Client去连接Server。

**********************

EJB系列教程之二(Session beans EJB) ------

在这里,我只介绍操作过程。

一、建立一个工程(project)

File ---> New Project

Project name 为:HelloWorld

选择一个该项目的根目录,Root path,例如:E:\ejbproject

Finish。

二、建立一个EJB Gruop

File ---> New ---> Enterprise ---> Empty EJB Group

输入名字:Name为:HelloWorld

OK

三、建立beans

File ---> New ---> Enterprise ---> Enterprise JavaBean

Next,将发现Package中已经有了:helloworld

在Class name中输入:HelloWorldBean

Next --->Finish

用鼠标双击左边的HelloWorldBean.java,在

public void setSessionContext(SessionContext context) {

sessionContext = context;

}

后加入一个事件(商业逻辑):

public String getHelloWorld(){

return "Hello World!";

}

Save All,然后Ctrl+F9,make,应该是0个错误,0个警告。

四、远程接口的处理

还是在该界面,HelloWorldBean.java的代码下有一个“Bean”,点Bean然后Methods,将复选框java.lang.String getHelloWorld()选上。

五、配置描述(Deployment Descriptor)

双击“HelloWorld.ejbgrp”,在下面展开“HelloWorldBean”

点“Container Transaction”后,在右边点“Add”

Interface下是“*”,Method下也是“*”,Transaction attribute下,选择“Required”

Save all后,点“Verify”进行效验,应该是没有错误的。最后Ctrl+F9“make”。

到这里,服务端已经设置好了。

六、用Client去测试。

File ---> New ---> Enterprise ---> EJB Test Client

发现Enterprise JavaBean中是:HelloWorldBean

Package中是:helloworld

在Class中输入类名,比如:HelloWorldClient

在左边,点“HelloWorldClient.java”在代码中,有一个try...catch块,在try中的最后面加上下面代码,去调用Serve端:

try {

//get naming context

Context ctx = new InitialContext();

//look up jndi name Object

ref = ctx.lookup("HelloWorld");

//cast to Home interface

helloWorldHome = (HelloWorldHome) PortableRemoteObject.narrow(ref, HelloWorldHome.class);

HelloWorld hello=helloWorldHome.create();

String str=hello.getHelloWorld();

System.out.println(str);

}

catch(Exception e)

{

e.printStackTrace();

}

七、配置

鼠标右键点HelloWorldHome.java

Properties --->Build --->VisiBroker

将Generate IIOP勾上

OK

Save All

Ctrl+F9 "make"

八、运行

启动VisiBroker Smart Agent,方法是:运行visibroker的bin目录下的:osagent.exe文件。(也可以利用JB4的菜单配置工具,将Smart Agent加到JB4的菜单下,直接从菜单启动)

F9“Run”启动Container------这个过程也许要花点时间哦。

右键HelloWorldClient.java点“Run”将显示“Hello World!”。

如果你看到了,说明已经成功了,否则是哪个步骤不小心,再仔细看吧。

**********************************************************************

EJB系列教程之三(介绍Session beans)(译)

一、Session beans简单介绍

Session beans通常用于一个客户端的会话。Session beans中的事件通常执行为客户端设置的任务和进程。它仅仅存在在客户连接的过程中,也可以说,session beans体现EJB server的Client , 它通常为Client提供服务。除了你必须用到持续不变的数据外,通常使用session beans。

二、两种类型的Session beans

有态Session beans和无态Session beans。

有态Session beans用于单个client,用来保持这个client的状态信息。例如,网上购物中的用户定单就是一个session beans。客户从物品列表中选取物品到定单中。最后,客户要通过它来计算总价,付款。

无态Session beans用于多个client,它不由单个client所控制。例如:聊天室中,聊天人的列表就是一个无态Session beans,因为每加一个人,该列表都会变化的。

三、生命周期

(1)有态Session beans当client调用Session bean 的home接口的create()事件的时候就开始存在。Container就开始建立一个新的session bean实例,并且初始化,返回信息给clinet端。在这个过程中,Container调用sessionbean接口的setSessionContext()事件和ejbCreate()事件。

当一个Client通过远程或者HOME接口调用remove()事件时,Container将调用ejbRemove()事件,以后,这个bean的生命周期就结束了。此时,如果client试着再去调用beans的事件,将产生一个java.rmi.NoSuchObjectException异常。

(2)无态Session beans当client调用Session bean 的home接口的create()事件的时候就开始生存。Container就开始建立一个新的session bean实例,返回信息给clinet端。在这个过程中,Container调用sessionbean接口的setSessionContext()事件和ejbCreate()事件。这个新的bean就被加到一个“池”中,供Client端用。由于不带任何Client端特有的状态,所以这个“池”中的任何beans都可以被client端用。

当Container从“池”中移掉一个对象的时候,将调用bean对象的ejbRemove事件。需要注意的是:调用create()和remove()事件,并不能从无态Session beans的 "池"中增加和移走无态Session beans。在整个过程中,无态Session beans的生命周期是由Container来控制的。

*******************

EJB系列教程之四(Jboss下配置EJB)-

------本站文章为东方一蛇原创,如要转载请注明原作者和网站。

一、前言

Jboss为Open Source,完全免费的Appliaction Server,对于J2EE有很好的支持,可以和Tomcat完美结合。

二、下载,安装

下载地址为Jboss官方站点:http://www.jboss.org/,我下载的是Jboss2,而且和tomcat一起的,这样避免了单个下载一起配置的问题。下载地址是:http://www.jboss.org/jboss_tomcat.zip

下载完,解压到一个目录,我这里用E:\jboss_tomcat作为例子。下面有子目录:

E:\jboss_tomcat\jboss2

E:\jboss_tomcat\tomcat32b7

注意,我这里的目录稍微做了改动的,这样如果你不将TOMCAT_HOME加到CLASSPATH中,E:\jboss_tomcat\jboss2\bin\run_with_tomcat.bat这个文件要做相应改动才能正常运行。

三、配置运行

基本上不要什么配置的,只要安装好了JDK,当然,最好将TOMCAT_HOME加到CLASSPATH中。

这样,E:\jboss_tomcat\jboss2\bin\run_with_tomcat.bat这个文件前的TOMCAT_HOME就可以去掉了。

运行E:\jboss_tomcat\jboss2\bin\run_with_tomcat.bat这个文件,这样,Tomcat端口在8080,Jboss为8083,

运行http://localhost:8080/将出现tomcat首页,

运行http://localhost:8083/将出现无错误的空白页,

四、测试EJB

(1)启动JBOSS:

方法见上:

(2)下载代码:

http://www.wodejia.net/softdownload/java/interestejb.zip

解开,出现如下目录:

interest/com

interest/docs

...

全部copy到jboss2下examples目录下,如果没有examples目录,建立一个,结构如下:

E:\jboss_tomcat\jboss2\examples\interest\...

将文件E:\jboss_tomcat\jboss2\examples\interest\interest.jar复制到:

E:\jboss_tomcat\jboss2\deploy下:

在CLASSPATH中加入如下文件:

E:\jboss_tomcat\tomcat32b7\lib\servlet.jar;E:\jboss\client\jboss-client.jar;E:\jboss\client\jnp-client.jar;E:\jboss\lib\ext\ejb.jar;E:\jboss\examples\interest\interest-client.jar

为了测试Client通过servlet调用EJB,必须将: E:\jboss_tomcat\jboss2\examples\interest\下EJB.class和EJB.java复制到:

E:\jboss_tomcat\tomcat32b7\webapps\ROOT\WEB-INF\classes目录下

重新启动JBOSS_TOMCAT

(3)command下client测试运行:

command下,进入目录E:\jboss_tomcat\jboss2\examples\interestjava InterestClient

将出现:

Got context

Got reference

Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023

jboss窗口将出现:

[Interest] Someone called `calculateCompoundInterest!'

(4)web下client通过Servlet测试运行:

http://cgreen:8080/servlet/EJB

将出现:

Interest on 1000 units, at 10% per period, compounded over 2 periods is: 210.00000000000023

jboss窗口将出现:

[Interest] Someone called `calculateCompoundInterest!'

到此已经成功了。

***************

EJB系列教程之五(Orion下配置EJB2.0)

-------本站文章为东方一蛇原创,如要转载请注明原作者和网站。

一、准备

你必须有以下条件:

JDk1.22或者更高版本

Java 3 Enterprise Edition(J2EE)

Orion Application Server 1.38或者更高版本

Jakarta-Ant(用这个工具打包EAR文件,在下载的ZIP文件中,已经建立好了,所以,该工具可以不要)

二、下载文件:

http://www.wodejia.net/softdownload/java/Test20Cmp.zip

解开后,建立如下结构:

X:\Orion-test-apps\Test20Cmp\eb\:该目录下包含java bean文件

X:\Orion-test-apps\Test20Cmp\servlet:该目录下有servlet的java文件

其中,X为你的本地硬盘

[自己打包EAR文件的方法: 进入X:\Orion-test-apps目录运行: ant -buildfile package.xml ]

三、配置:

X:\j2sdkee1.2.1\lib\j2ee.jar

X:\Orion-test-apps

加到CLASSPATH环境变量中

另外,Orion\config目录下修改2个文件:

server.xml中, 在</application-server>之前,加:

<application name="SampleEb20" path="c:\Orion-test-apps\Test20Cmp\rel\SampleEb20-ver001a.ear" />

default-web-site.xml中,</web-site>之前,加:

<web-app application="SampleEb20" name="SampleEb20-ver001a-web" root="/Test20Cmp" />

四、测试运行

重新启动Orion Application Server

http://localhost[port]/Test20Cmp/Test20

将显示:

Sample20Eb GET Called

Command 下Orion将有类似下面的输出:

MakeSample20Eb.doPost() called

new InitialContext being called

context.lookup being called

PortableRemoteObject.narrow being called

home.create being called

... ...

makeNew method has returned

五、检测数据

进入Orion\bin目录下,启动Orion下自己带的数据库工具:

java -cp hsql.jar DatabaseManager

在URL中输入:

jdbc:HypersonicSQL:../database/defaultdb

点“OK”将进入数据库管理。

***********************************

最后说明,本人english比较差,翻译的时候肯定会存在不少的错误,请大家原谅。

本站文章归东方一蛇所有,如要转载,请注名原文作者和网站。 OK--> www.wodejia.net

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有