EJB3要部署到weblogic10實(shí)在是太煩了,這幾天被它搞得心煩,下面將慢慢總結(jié):
1.居然不支持lookup本地接口.估計是我的原因,按我的方案loca object被作為業(yè)務(wù)對象,但我又不想通過標(biāo)記注入的方式來使用,因此,就在SessionBean的基類上做了一個getRefService,主要是通過lookup來查找本地接口,其實(shí)還有其它原因,就是開發(fā)期間我想通過spring來查找local object,誰知部署后聯(lián)調(diào),發(fā)現(xiàn)這種做法根本不能用.沒辦法,改成@EJB注入方式,在開發(fā)期間引入Pitchfork.但由于我通過@Resource標(biāo)記注入了一個SessionContext,Pitchfork處理時居然通不過,只好做一個模擬的SessionContext的實(shí)現(xiàn)來支持開發(fā)期間
2.一個SessionBean中如果Remote方法太多,竟然在部署時不認(rèn)為它是EJB,具體原因,我還在查.具體原因沒找到,估計是EJB認(rèn)為不要將邏輯放入,它只是一個Facade,但將其實(shí)現(xiàn)移到superclass中,然后EJB類上根本不做什么,就可以解決.
3.JPA中查詢出來的,如:
Query q = em.createQuery("select o from A o")
return q.getResultList();
這樣的本地代碼可以,但通過RMI則是不行的
目前就發(fā)現(xiàn)這些問題,總的來說,現(xiàn)在都解決了,個人認(rèn)為用EJB3,開發(fā)效率比EJB2.0高多了,性能上面,經(jīng)過我們簡單的性能檢查,沒發(fā)現(xiàn)有多大改善.