明月松间照 清泉石上流


                                        ——— 兵临城下   猫科动物
posts - 70, comments - 137, trackbacks - 0, articles - 23
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

CMP的本地方法调用

Posted on 2006-04-28 21:54 兵临城下 阅读(489) 评论(2)  编辑  收藏 所属分类: Java EE

        继续昨天发的随笔,虽然解决了CMP的部署发布问题,在WebSphere中成功发布。但以我的经验写出的代码却不能调用它!弄了一下午,有点郁闷!向大家说说!
       先向大家叙述一下我的CMP的情况:
       我使用的CMP使用的本地接口,没有建立远程接口。我想运用facade模式,也就是在一个SessionBean中调用实体Bean,所以我使用本地接口。我的本意是这样可以减少频繁的远程调用而带来的资源占用。
       然而我在调试时wsad报错,从报错中显示找不到这个CMP,后来我设了断点在下面这个语句:
ctx.lookup("ejb/com/diablo/ProgrammerLocalHome);这个语句是在一个try语句中,发现程序运行这句后就捕捉到异常,直接跳到catch中了。所以确定是JNDI出问题了啊!
       以我对本地接口的认识,bean之间调用属于内部调用,利用本地接口可以减少资源的占用。然而却不能如我所愿啊!如果把这个CMP设成远程接口,就没有任何问题。
       想问问各位,这个CMP的本地接口到底应该怎么调用呢?还是我哪里认识有错误呢?  
       欢迎指点!


评论

# re: CMP的本地方法调用  回复  更多评论   

2006-05-16 11:24 by 兵临城下
经多次调试,偶得:
一、建立的Entity bean具有本地接口,然而在Session bean中直接通过其本地的JNDI调用却不能成功。
二、在Session bean中创建一个Entity bean的本地引用,比如本地引用名为:ejb/Programmer,然后在sesion bean 中lookup是直接使用还是不行。
三、在二的基础上,在lookup中使用以下字符串:"java:comp/env/ejb/Programmer",则能够成功调用。

从以上看出,在EJB容器内内部调用EJB需建立本地引用,并采用第三种方式。

# re: CMP的本地方法调用  回复  更多评论   

2006-11-06 22:09 by 11111111111111
java:comp/env/是专属于EJB的上下文结点

只有注册用户登录后才能发表评论。


网站导航: