私は以下のような2種類のインタフェースにさらさEJB Beanを持っている:ローカルインタフェースは、私のWebアプリケーションのためのものであり、リモートインタフェースはので、私のアプリケーションクライアントは、以下のように見える私のアプリのクライアントのためにEJBが@Remoteインタフェースを公開していても、リモートインタフェースではなくEJB Beanを注入すると、リモート呼び出しまたはローカル呼び出しがトリガされますか?
@Stateless
public class CoreMainEJB implements CoreMainEJBRemote, CoreMainEJBLocal {
//...
}
です。この場合、リモートメソッド呼び出しが発生します
public class Main {
@EJB
private static CoreMainEJBRemote coreEJBRemote;
public static void main(String[] args) {
coreEJBRemote.process(args[0]);
}
}
私のWebアプリケーションから、私は以下のように呼び出します。ローカルメソッド呼び出しは、だからここにこの場合
@ManagedBean
@RequestScoped
public class DisplayInbound {
@EJB
private CoreMainEJBLocal coreMainEJBLocal;
public void processPackages() {
coreMainEJBLocal.process(...);
}
}
で起こっているEJBだけ@Remoteインターフェースを公開した場合、私の質問、ですが、あなたのWebアプリで、あなたの代わりにそのリモートインターフェースの直接EJB Beanを注入し、意志これはリモート呼び出しまたはローカル呼び出しをトリガーしますか?たとえば:
@Stateless
public class CoreMainEJB implements CoreMainEJBRemote{
//...
}
やウェブアプリでは、私はこの
@EJB
private CoreMainEJB coreMainEJB;
public void processPackages() {
coreMainEJB.process(...); //Is this local or remote invocation here?
}
申し訳ありません私は別のプロジェクトに忙しかったので少し遅刻しました。ありがとう、ありがとうございます。 –