为了方便您阅读最新章节,请记住“闪文书库”网址 www.shanwen.com,注册会员收藏您喜爱的书籍
====>>>公告:晚上6点-11点高峰期,可能出现图片打开缓慢,如果太长时间没有打开,请刷新
第一卷第五章
?3.在jbuilder中开发ejb
一、新建一个Project:选择File->NewProject,在Name栏填写JBossDemo,在Directory栏输入保存路径,其它不变,单击Finsih。选择Project->Projectproperties,在Path页的RequiredLibraries中单击Add按钮,在弹出的对话框中选择我们刚才建立的JBossLibs,单击OK。选择Server页,选中SingleServerForAllServiceinProject,在下拉列表中选择JBoss3.X,单击OK。
二、新建一个EJBModule:选择File->New,在弹出的对话框中选择Enterprise页中的EJBModule图标,单击OK。在弹出的对话框中Name栏填写JBossDemoModule,其它不变,单击OK。
三、新建两个CMP:右键单击左下角的DataSource,选择ImportSchemaFromDatabase,在弹出的对话框“DatabaseSchemaProvider”中选择“ChooseExistingConnection”,在弹出的“SelectDatabase”中选择我们刚建立的“jdbc:microsoft:sqlserver…”,单击ok,在“DatabaseSchemaProvider”中,按如下信息填写,其他不变:
UserName:sa
Password:csdn
JNDIName:java:/MSSQLDS
Extendedproperties:DatabaseName=Northwind
勾选AllSchemas和Views项
单击OK。成功的话,在DataSource下面将出现一个java:/MSSQLDS项,单击其左侧的+号,将其展开,将会看到表名。右键单击Employees表,选择CMP2.0EntityBean,同样右键单击Orders表,选择CMP2.0EntityBean。
四、建立表关联的关系:右键单击右侧的代表Employees表的矩形,选择Add->Relationship后,单击指向代表Oderss表的矩形后,将会看到一条线把两个矩形连接起来了,同时Employees表多了一个orders字段。单击右下角的JBossCMP-JDBC页,按如下填写,其它不变:
datasource=MSSQLDS
datasource-mapping=HypersonicSQL
选择File->SaveAll保存项目。选择Project->“MakeProjectJbossDemo.jpx”编译项目。
五、建立SessionBean:在右边的空白处单击右键,选择CreateEJB->SessionBean,将BeanName改为GetData,右键单击代表这个SessionBean的矩形,选择Add->Method,按如下填写:
MethodName=GetOrdersByEmployeesID
ReturnType=Vector
InputParameters=IntegerID
Interface=Remote
六、编写代码:右键单击代表GetData的矩形,选择ViewBeanSource。在开始处加入以下语句:
importjava.util.*;
importjavax.naming.*;
按如下填写GetOrdersByEmployeesID:
publicVectorGetOrdersByEmployeesID(IntegerID)
{
Vectorresult=newVector();
result.add(ID);
try
{
Contextctx=newInitialContext();
EmployeesHomehome=(EmployeesHome)ctx.lookup("Employees");
Employeesemp=home.findByPrimaryKey(ID);
Collectionorders=emp.getOrders();
Iteratorit=orders.iterator();
while(it.hasNext())
{
Ordersorder=(Orders)it.next();
result.add(order.getOrderID());
}
}
catch(Exceptionex)
{
System.out.println("ShowOrdersByEmployeesID()error:"+ex.getMessage());
}
returnresult;
}
七、建立Servlet:选择File->New,在弹出的对话框中选择Web页中的Servlet图标,单击OK。在弹出的对话框中ClassName栏填写FormServlet,其它不变,单击Next,选中doGet()项,单击Next,此处的Name和URLpattern是有讲究的,它说明该servlet的web位置和web显示名称,其它不变,单击Finish。
按如下填写FormServlet.java的doGet()函数:
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriterout=response.getWriter();
out.println("");
out.println("");
out.println("
");
out.println("");
out.println("Name
");
out.println("");
out.println("
");
out.print("");
out.println("");
}
再次选择File->New,在弹出的对话框中选择Web页中的Servlet图标,单击OK。在弹出的对话框中ClassName栏填写ShowOrdersServlet,其它不变,单击Next,选中doPost()项,其它不变,单击Next,单击Next,单击AddParameter,按如下填写:
Name=EmployeeID
Type=String
Desc=employee’sID
Variable=employeeID
Default=1
单击Next,单击Finish。
按如下填写ShowOrdersServlet.java的doPost()函数:
别忘了在开始处加入以下语句:
importjava.util.*;
importjavax.naming.*;
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException
{
StringemployeesID=request.getParameter("EmployeeID");
if(employeesID==null)
{
employeesID="1";
}
response.setContentType(CONTENT_TYPE);
PrintWriterout=response.getWriter();
Vectororders=newVector();
try
{
Contextctx=newInitialContext();
GetDataHomehome=(GetDataHome)ctx.lookup("GetData");
GetDatagetData=home.create();
orders=getData.GetOrdersByEmployeesID(newInteger(employeesID));
}
catch(Exceptionex)
{
System.out.println("GetOrdersServletdoPost()error:"+ex.getMessage());
}
Iteratorit=orders.iterator();
out.println("");
out.println("");
out.println("");
out.println("
OrderswithEmployeesID"+employeesID+"");
while(it.hasNext())
{
out.println("
OrderID="+it.next().toString()+"");
}
out.println("");
out.println("");
}
八、建立EAR文件:右键单击左侧目录树中的的“RebuildProjectJBossDemo.jpx”编译项目。
九、发布整个应用程序:右键单击左侧目录树中的的JBossDemo.eargrp,选择DeployOptionsfor“JBossDemo.ear”—>Deploy,发布应用程序。
十、测试应用程序:打开IE,在地址栏输入http://localhost:8080/JBossDemo/formservlet
http://localhost:8080/JBossDemo/formservlet,回车,在编辑框中输入3,单击“submit”即可。
为了方便下次访问,请牢记闪文书库网址www.shanwen.com,您的支持是我们最大的动力。注册会员