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高多了,性能上面,經過我們簡單的性能檢查,沒發現有多大改善.