EJB3要部署到weblogic10实在是太烦了,这几天被它搞得心烦,下面将慢慢总结:
1.居然不支持lookup本地接口.估计是我的原因,按我的方案loca object被作为业务对象,但我又不想通过标记注入的方式来使用,因此,就在SessionBean的基类上做了一个getRefService,主要是通过lookup来查找本地接口,其实还有其它原因,就是开发期间我想通过spring来查找local object,谁知部署后联调,发现这种做法根本不能用.没办法,改成@EJB注入方式,在开发期间引入Pitchfork.但由于我通过@Resource标记注入了一个SessionContext,Pitchfork处理时居然通不过,只好做一个模拟的SessionContext的实现来支持开发期间
2.一个SessionBean中如果Remote方法太多,竟然在部署时不认为它是EJB,具体原因,我还在查.具体原因没找到,估计是EJB认为不要将逻辑放入,它只是一个Facade,但将其实现移到superclass中,然后EJB类上根本不做什么,就可以解决.
3.JPA中查询出来的,如:
Query q = em.createQuery("select o from A o")
return q.getResultList();
这样的本地代码可以,但通过RMI则是不行的
目前就发现这些问题,总的来说,现在都解决了,个人认为用EJB3,开发效率比EJB2.0高多了,性能上面,经过我们简单的性能检查,没发现有多大改善.