Welcome 微信登录

首页 / 软件开发 / JAVA / 深入掌握Java技术EJB调用原理分析二

深入掌握Java技术EJB调用原理分析二2011-04-19Home接口的Weblogic实现类的stub类 ((Hello Bean))_HomeImpl_WLStub(部署的时候动态生成字节码)

Home接口的Weblogic实现类的skeleton类 ((Hello Bean))_HomeImpl_WLSkeleton(部署的时候动态生成字节码)

Remote接口:Hello (用户编写)

Remote接口的Weblogic实现类 ((Hello Bean))_EOImpl(EJBC生成)

Remote接口的Weblogic实现类的stub类 ((Hello Bean))_EOImpl_WLStub(部署的时候动态生成字节码)

Remote接口的Weblogic实现类的skeleton类 ((Hello Bean))_EOImpl_WLSkeleton(部署的时候动态生成字节码)

客户端只需要Hello.class和HelloHome.class这两个文件。

((Hello Home)) home = (Home)

((Portable Remote Object)).narrow(ctx.lookup("Hello"),

((Hello Home)).class);

这一行代码是从JNDI获得Home接口,但是请记住!接口是抽象的,那么home这个对象到底是什么类的对象实例呢?很简单,用toString()输出看一下就明白了,下面一行是输出结果:

((Hello Bean))_HomeImpl_WLStub@18c458

这表明home这个通过从服务器的JNDI树上查找获得的对象实际上是HelloBean_HomeImpl_WLStub类的一个实例。

接下来客户端代码:

Hello h = home.create()

同样Hello只是一个抽象的接口,那么h对象是什么东西呢?打印一下:

((Hello Bean))_EOImpl_WLStub@8fa0d1

原来是HelloBean_EOImpl_WLStub的一个对象实例。