2013-12-10 67 views
0

假設我們使用EJB3和我們的會話bean使用/實現本地接口L和遠程接口R.EJB本地包括遠程

@Local 
public interface L { 
abstract void localMethod(); 
} 

@Remote 
public interface R { 
    abstract void remoteMethod(); 
} 

我的問題1

可以在本地客戶端也利用remoteMethod?

我的問題2

是很好的做法,與遠程接口擴展本地接口?

@Local 
public interface L extends R { 
... 
} 

回答

2
  1. 目前還不清楚是什麼你的意思是 「本地客戶端」。如果你有一個客戶端在同一個進程中,那麼它可以同時使用L和R,但是你必須分別查找/注入它們:你不能查找L,轉換爲R,並調用remoteMethod。

  2. 我不會稱之爲「好」的做法。遠程接口上的方法的參數和返回值將按值傳遞,但本地接口上方法的參數和返回值將是通過引用傳遞的。也就是說,如果您的EJB和它的客戶端知道這個警告,那麼儘可能使用本地接口可以獲得更好的性能。