,,EJB轻松进阶之一

,,EJB轻松进阶之一

来源:硅谷动力作者:中流砥柱

一.导言

EJB(Enterprise JavaBeans)是Java编程中比较高级的内容,也是Java程序员从入门级晋升到大师级的门槛。SUN认证Java程序员(SCJP)和SUN认证Java开发人员(SCJD)之间的一个重要区别是,SCJP不测试EJB,但SCJD测试。随着越来越多的企业采用J2EE平台开发电子商务应用系统,EJB开发已经成为当今Java程序员必须面对的问题。

首先用一个例程介绍一般分布式对象应用的基本原理,然后从基本的下载、安装、配置开始逐步介绍EJB的编程方法,让学习EJB成为一件轻松有趣的事情。

二、典型的分布式对象程序

不管是CORBA还是RMI,它们实现分布式对象的策略都是相似的。我们可以用一个简单的程序例子来模拟一个分布式对象程序的组成。

此示例模拟远程请求对象属性的过程。网络上有一个远程对象Dog,现在我们要获取它的name (strName)属性。程序在客户端设置一个stub (Dog_Stub)类,在服务器端启动一个skeleton (Dog_Skeleton)类。两个类都实现了dog接口,Dog_Stub和Dog_Skeleton通过Socket进行远程通信。当客户端DogClient向Dog_Stub发送获取name属性的请求时,Dog_Stub对象通过Socket将方法名“getName()”作为字符串发送给远程Dog_Skeleton对象。Dog_Skeleton对象接收到这个字符串后,根据字符串的内容执行DogServer对象的getName()方法得到狗的名字,然后通过Socket返回给DogStub对象。整个过程都是通过网络实现的,但是对于客户端程序DogClient来说,它并不知道真正的狗对象在哪里,甚至不知道这个过程已经通过了网络。它只知道获取name属性的请求已经被满足。

事实上,CORBA或Java RMI也是以类似的方式实现的,但远没有那么简单。这个程序对于解释分布式对象应用程序的执行机制非常有用。

程序源代码如下:

记录Dog.java

公共接口狗

{

公共字符串getName()引发异常;

}/*狗*/

记录DogClient.java

公共类狗客户端

{

公共静态void main( String[] args)引发异常

{

狗狗=new Dog _ Stub();

string strName=dog . getname();

system . out . println(' name:' strName ');

}//main()

}/*狗客户端*/

记录DogServer.java

公共类DogServer实现Dog

{

字符串strName

intAge

公共字符串getName()引发异常

{

返回strName

}//getName()

公共狗服务器(字符串输入)

{

strName=strNameInput

}//DogServer()

公共静态void main( String[] args)引发异常

{

new Dog _ Skeleton(new Dog server(' TOMCAT '));

}//main()

}/* DogServer */

文件Dog_Skeleton.java

导入Java . io . *;

导入Java . net . *;

公共类Dog_Skeleton扩展线程

{

静态服务器套接字ss=null

DogServer ds

公共Dog_Skeleton( DogServer dsInput)抛出异常

{

ds=dsInput

if ( ss==null)

ss=新服务器套接字(8000);

this . start();

}//狗_骷髅()

公共同步void运行()

{

尝试

{

而(ss!=空)

{

socket socket=ss . accept();

ObjectInputStream ois=new ObjectInputStream(socket . getinputstream());

object output stream OOS=new object output stream(socket . get output stream());

String strMethodName=(String)ois . read object();

if(strmethodname . equals(' getName()'))

OOS . writeobject(ds . getname());

OOS . flush();

ois . close();

OOS . close();

socket . close();

}//当

}//尝试

捕捉(例外e)

{

e . printstacktrace();

}//捕捉

}//run()

}/*狗_骷髅*/

文件Dog_Stub.java

导入Java . io . *;

导入Java . net . *;

公共类Dog_Stub实现Dog

{

插座插座;

ObjectOutputStream oos

对象输入流操作系统:

public Dog_Stub()抛出异常

{

套接字=新套接字(‘武帝’,8000);

OOS=新对象输出流(套接字。getutputstream());

ois=新对象输入流(套接字。getinpertstream());

}//Dog _存根()

公共字符串getname()引发异常

{

OOS。writeobject(' getname()');

Oos.flush():

返回(字符串)ois。read object();

}//getName()

}/*狗狗_Stub */

运行该分布式对象程序时,首先运行狗服务器,然后在客户端运行狗客户端客户端即可看到结果。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: