J2EE Server下的第一个EJB程序Word文件下载.docx

上传人:b****1 文档编号:1359315 上传时间:2023-04-30 格式:DOCX 页数:28 大小:853.57KB
下载 相关 举报
J2EE Server下的第一个EJB程序Word文件下载.docx_第1页
第1页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第2页
第2页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第3页
第3页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第4页
第4页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第5页
第5页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第6页
第6页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第7页
第7页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第8页
第8页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第9页
第9页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第10页
第10页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第11页
第11页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第12页
第12页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第13页
第13页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第14页
第14页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第15页
第15页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第16页
第16页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第17页
第17页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第18页
第18页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第19页
第19页 / 共28页
J2EE Server下的第一个EJB程序Word文件下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

J2EE Server下的第一个EJB程序Word文件下载.docx

《J2EE Server下的第一个EJB程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《J2EE Server下的第一个EJB程序Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。

J2EE Server下的第一个EJB程序Word文件下载.docx

我的安装目录是在H:

盘。

在安装之前如果你以前装有不同版本的jdk,请先卸载,然后再安装。

安装好以后,请设置classpath.windows下的设置如下:

为了方便,所以加入大部分的路径。

setJAVA_HOME=h:

\j2sdk1.4

setJ2EE_HOME=h:

\j2sdkee1.3.1

setclasspath=h:

\j2sdk1.4\jre\lib\jaws.jar;

h:

\j2sdk1.4\lib\dt.jar;

\j2sdk1.4\lib\tools.jar;

\j2sdkee1.3.1\lib\ejb10deployment.jar;

\j2sdkee1.3.1\lib\j2ee.jar;

\j2sdkee1.3.1\lib\jhall.jar;

\j2sdkee1.3.1\lib\j2eetools.jar;

\j2sdkee1.3.1\lib;

上面是我的机器上的目录,如果你安装在不同的目录上的话,请自行改变

如果操作系统是win98,要运行这个文件或者重新启动才可以生效.

这样可以顺利的启动j2ee,在dos窗口下运行%j2ee_home%\bin\j2ee-verbose命令如果顺利的话,就会看到在DOS窗口中出现J2EEserverstartupcomplete的提示(如下图)。

打开浏览器敲入地址http:

//localhost:

8000/index.html可以看到首页就说明配置正确并成功启动了J2EE应用服务器。

(如下图)

第二、启动数据库

加入如下的路径

\j2sdkee1.3.1\lib\system\cloudutil.jar;

\j2sdkee1.3.1\lib\cloudscape\cloudclient.jar;

\j2sdkee1.3.1\lib\cloudscape\rmijdbc.jar;

\j2sdkee1.3.1\lib\system\cloudscape.jar;

关键的问题出在如何调出cloudscape数据库的图形管理界面!

你在命令行方式下敲入javaCOM.cloudscape.tools.cview很可能会出现错误。

什么原因呢?

第一、你要看看你的jdk版本对不对,是不是1.3.1_02以上或者1.4的。

第二、关键中的关键,原来sun的j2ee里的cloudview是不能在他附带的cloudscape4.0.6下工作的(真不知道sun在搞什么东东:

))

这里是在ibm网站上的一句原话:

TheJava2SDK,EnterpriseEditionv.1.3.1includesCloudscape4.0.6butincludesaversionofCloudviewwhichwillnotfunctionwiththe4.0.6system。

所以同志门就自己去下一个吧!

这里还需要两个jar文件。

下载地址是

cloudview.jar和jd.jar把这两个文件放在j2sdkee1.3.1下的cloudscape目录下,我这里还需要加两个classpaht路径

\j2sdkee1.3.1\cloudscape\cloudview406.jar;

\j2sdkee1.3.1\cloudscape\jh.jar

OK!

一起大功告成!

现在看看怎么启动cloudview,在命令行下键入

java-Dcloudscape.system.home=%j2ee_home%\cloudscapeCOM.cloudscape.tools.cview

这里-Dcloudscape.system.home是设置数据库存放的路径,这个路径可以在建立数据库的时候改变

%j2ee_home%\cloudscape是cloudscape的默认工作目录

也可以将-Dcloudscape.system.home后的路径去掉,不过要记住,要将数据库建在改路径下,否则j2eeserver找不到它!

好了,接下来你会发现一个图形界面。

用file——>

new菜单来新建一个数据库(如下图)

很多数据库的管理模式都差不多,比如cloudview和sqlserver、db2的控制中心使用方法基本相同。

在弹出的菜单中输入你所要创建的数据库名。

在这个例子里输入ExampleDB。

按directory按钮选择目录在j2ee的安装目录下的cloudscape目录(如下图)

这时在面板的左面就会发现有了table、view等列表。

如果下次启动时候左面的面板不见了,可以选view菜单下的detailsonly后再选一次。

然后在Table上点右键选择new子菜单下的table,新建好了一个表后可以在右边的框的name旁边的框内修改表名,这里表名设成employee。

在columns这一栏可以按+号新增一个列。

也可以选择所要删除的列后按-号。

新建两个列,一个是employeeID、一个是name类型和字段长度如下图所示。

选择Data标签可以新增数据,你可以输入一些测试数据。

鼠标右键选择左边窗口的Keys在弹出的窗口里选择new——>

key。

在右边的窗口修改名字为employeeKey,类型选择primaryKey,然后点选EmployeeID字段(如下图),按下面的OK按钮确定,最后按OK按钮关闭cloudview窗口。

接下来启动j2ee自带的cloudscape数据库,这个也简单

在命令行方式下到h:

\j2sdkee1.3.1\bin目录下打cloudscape-start可以启动cloudscape数据库如下图

第三、接下来开始写三个范例程序

分别是EmployeeHome.java、EmployeeBean.java、Employee.java。

把这三个程序一起放在一个叫first的目录里

(1)EmployeeHome.java

package;

importjava.util.Collection;

importjava.rmi.RemoteException;

importjavax.ejb.*;

publicinterfaceEmployeeHomeextendsjavax.ejb.EJBHome{

publicEmployeecreate(StringemployeeID)throwsDuplicateKeyException,javax.ejb.CreateException,java.rmi.RemoteException;

publicEmployeefindByPrimaryKey(StringemployeeID)throwsObjectNotFoundException,FinderException,RemoteException;

}

这个文件实现了Home接口。

Home接口必须遵守以下的规定:

(1)类型必须为interface。

(2)必须是public。

(3)至少要声明一个create()或者finder方法其中的一个。

(4)create和finder方法必须包含java.rmi.RemoteException异常,finder方法必须另外包含java.ejb.FinderException异常。

客户端利用Homeinterface取得EJBObject的远端对象参考(Remoteinterface)什么是Remoteinterface呢?

看下来的程序

(2)Employee.java

importjavax.ejb.EJBObject;

publicinterfaceEmployeeextendsjavax.ejb.EJBObject{

publicStringgetName()throwsjava.rmi.RemoteException;

这个文件实现了Remote接口。

Remote接口必须遵守以下的规定:

(3)必须直接或者间接继承java.ejb.EJBObject。

(4)声明的方法必须和Beanclass里的方法一样。

(3)EmployeeBean.java

importjava.util.*;

publicclassEmployeeBeanimplementsEntityBean{

publicStringemployeeID;

publicStringname;

privateEntityContextcontext;

publicvoidsetEntityContext(EntityContextcontext){

this.context=context;

publicvoidunsetEntityContext(){

context=null;

publicStringejbCreate(StringemployeeID)throwsDuplicateKeyException,CreateException{

this.employeeID=employeeID;

this.name="

"

;

returnnull;

publicvoidejbPostCreate(StringemployeeID){

publicvoidsetName(Stringname){

this.name=name;

publicStringgetName(){

returnname;

publicvoidejbActivate(){

employeeID=(String)context.getPrimaryKey();

publicvoidejbPassivate(){

employeeID=null;

name=null;

publicvoidejbRemove(){

publicvoidejbLoad(){

publicvoidejbStore(){

以上是一个EntityBean和一个远程接口和一个Home接口。

下面写一个JavaBean来调用EntityBean里的方法

EmployeeOut.java

packageemployee.beans;

import.*;

importjavax.naming.*;

importjavax.rmi.PortableRemoteObject;

importjava.sql.*;

publicclassEmployeeOut{

privateStringid="

privateStringname="

EmployeeHomeemployeeHome=null;

publicEmployeeOut()throwsSQLException

{

try{

Contextinitial=newInitialContext();

Objectobjref=initial.lookup("

ejb/EmployeeEntityBean"

);

employeeHome=(EmployeeHome)PortableRemoteObject.narrow(objref,EmployeeHome.class);

}catch(Exceptionex){

thrownewSQLException(ex.toString());

publicStringgetName(Stringid)throwsException

try

Employeeemployee=employeeHome.findByPrimaryKey(id);

name=employee.getName();

}

catch(ObjectNotFoundExceptionnotfoundex){

return"

notfound"

catch(Exceptionex){

throwex;

在dos方式下,更换工作目录至first目录,然后执行下列的编译指令:

javac-d.*.java(注d后面和*前面都有一个空格)

就可以在first下生成一个com目录和一个beans目录里面有编译好了的.class文件。

接下来写一个jsp文件,将jsp文件放在first目录下,通过调用JavaBean里的方法来简洁调用EntityBean里的方法。

login.jsp

<

%@pagelanguage="

java"

import="

java.sql.*,employee.beans.*"

contentType="

text/html;

charset=GB2312"

%>

jsp:

useBeanid="

employee"

scope="

page"

class="

employee.beans.EmployeeOut"

>

/jsp:

useBean>

%

Stringname="

Stringid=request.getParameter("

id"

if(id==null)

id="

if(!

id.equals("

name=employee.getName(id);

html>

bodybgcolor="

#cccccc"

br>

formname="

f1"

action="

login.jsp"

method="

post"

tablewidth=60%align="

center"

tr>

td>

编号:

inputname=idvalue="

size=15>

/td>

姓名:

%=name%>

/tr>

tdclospan=2align="

inputtype="

submit"

name="

查询姓名"

/table>

/form>

/body>

/html>

第四、设置datasource部署J2EE

用文本编辑工具打开%J2ee_home%\config\resource.properties文件,找到jdbcDataSource.4.name=jdbc/DB2

jdbcDataSource.4.url=jdbc:

cloudscape:

rmi:

CloudscapeDB;

create=true

这行,在这行下面加上

jdbcDataSource.5.name=jdbc/ExampleDB

jdbcDataSource.5.url=jdbc:

ExampleDB;

各个不同的J2ee版本的Datasource设置文件不一样,以前的版本有的是在default.properties文件下设置的。

接下来用J2ee自带的部署工具部署应用程序,在dos窗口在键入%j2ee_home%\bin\deploytool打开deploytool工具

选择File---->

New---->

Application如图选择应用程序存放的地址和名字,名字以ear结尾。

接下来输入显示名后按OK关闭小窗口。

在左边的Frame里可以看到employeeDisName的符号。

用鼠标选上employeeDISName,选择File---->

newEnterpriseBean,第一个屏幕是一些介绍,直接按Next,在第下面的屏幕如图,填写JARDisplayName为employeeJAR。

在Contents面板点选旁边的Edit按钮,在弹出的窗口中的StartingDirectory里选择first目录,用鼠标按住Ctrl键一起选择在下面的AvaliableFiles里选择first下的employee下的com目录里的三个.class文件后,按Add按钮。

这时在最下面的ContentsofemployeeJAR里就会出现这三个类文件。

如下图

按OK键关闭窗口后在Contents面板里可以看到employee这个标志。

按下next

在BeanType里选择Entity,在EnterpriseBeanClass里选择你的BeanClassEmployeeBean,在RemoteHomeInterface里选择EmployeeHome,在RemoteInterfaze里选择Employee如图后,按下Next。

在PrisistenceManagement里选择Containermanagedprisistence(1.0),在FieldstobePersisted里把两个字段都选上,在PrimaryKeyClass里改成java.lang.String,在PrimaryKeyFieldName里选上employeeID,如下图所示,按Next。

在接下来的界面都按Next按钮一直到ResourceReferences面板,点击右边的Add按钮在CodedName和下面的JNDIName中填写jdbc/ExampleDB,如下图所示。

按finish按钮结束。

如下图选择窗口左边的EmployeeBean,按下右侧EntityTab页次的DeploymentSettings按钮。

在DeploymentSettings窗口取消DatabaseTable面板里的Createtableondeploy和DeleteTableonundeploy。

按下DatabaseSettings在弹出的窗口里的DatabaseJNDIName里填写jdbc/ExampleDB后按OK返回。

按下GenerateSQLNow按钮,生成SQL语句,成功的话系统会给出一个提示,这样就生成好了sql语句,选取左边的method里的各个方法可以看到在右边SQLQuery里出现相应的SQL语句。

将所有SQL语句里的EmployeeBeanTable修改成employee后按下OK关闭窗口。

点选左边的employeeDISName,在右边选择JNDIName标签,在Application下的JNDI标签中填写ejb/EmployeeEntityBean,这个名字要和EmployeeOut程序里的initial.lookup("

)一样。

接下来添加WebComponent

newWebComponent,第一个窗口直接next,进入WARFile窗口,在WARDisplayName中输入一个显示名:

employeeWEB。

点击Content下的Edit按钮,弹出EditContentsofemployeeWEB的窗口里,选择first下employee下beans目录下的EmployeeOut.class文件和first目录下的login.jsp文件后点击Add按钮(如下图),按OK关闭窗口。

在WARFile窗口里按Next按钮

在ChooseComponentType窗口里选择jsp按next到ComponentGeneralProperites选择JspFileName为login.jsp,WebComponentName里输入EmployeeWEB。

后按Finish(如下图)

点选左边窗口的employeeDISName,选取右边的WebContext的面板。

在ContextRoot里输入employee,这相当于虚拟目录名。

选择Tools----->

DeployApplication,在Introduction窗口选择objecttoDeploy里为employeDISName,TargetServer为localhost。

按Next后检查JNDI有没有写对,如果正确,按Next。

确认ContextRoot后按Next。

最后按Finish开始部署应用程序。

部署成功后出现如下图所示的信息。

然后打开IE输入http:

8000/employee/login.jsp就可以看到数据库的用户的姓名了。

注意事项:

如果运行的时候提示找不到表或者字段的话,请把SQL语句里的表名和字段名改成大写的。

因为cloudview建立好数据库后默认是大写的。

作者信箱:

wengchy@

版权声明 

给作者写信

本篇文章对您是否有帮助?

投票:

是 

否 

投票结果:

30 

3

评论人:

JFML 

参与分:

616 

专家分:

510 

来自:

杭州

发表时间:

2002-9-6上午12:

31

帅哥<

BR>

图片链接不对哟

pinky 

138 

0

2002-9-6下午5:

57

我建数据库的时候怎么要报错<

java.lang.ClassNotFoundExc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2