2017-01-08 13 views
1

EclipseでEJB 3.1のいくつかのプラクティスを実行しています。分離されたWebプロジェクトからのEJBインタフェース参照

私は私がやろうとしていますどのようなEJBプロジェクトとWildfly 9

上の動的Webプロジェクトを持っているが(動的Webプロジェクトでの)サーブレットからEJBメソッド (EJBプロジェクト)を呼び出すことです

@EJB 
IBeanRemote bean; //realize the bean variable is declared as the remote EJB Interfase. 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
    response.getWriter().println(bean.getMethod()); 
} 

と私のEJBは非常に単純です:

@Remote 
@Stateless 
public interfase IBeanRemote { 
    public String getMethod(); 
} 
... 
public BeanRemote extends IBeanRemote 
{ 
    @Override 
    public String getMethod() { 
     return "How to call this ejb?"; 
    } 
} 

両プロジェクトはバインあるサーブレットコードに@EJBアノテーションを使用して G EARプロジェクトにパッケージ化、私は することができません(IBeanRemoteとサーブレットが分離プロジェクトであるため)WebプロジェクトからIBeanRemote型リファレンスを参照して、そう、ライン

@EJB 
IBeanRemote bean; 

は、コンパイルすることができません。

WebプロジェクトのビルドパスにEJBプロジェクトを追加するのが一般的な解決策ですが、非常にリモートのサーバー上で実行されるリモートEJBを使用している場合は意味がありません。Webプロジェクトは何も知らないはずですEJB実装について

サーブレットクラス をeclipseでコンパイルして呼び出すために、WebプロジェクトにIRemoteBean参照型を取得するにはどうすればよいですか?

答えて

1

なぜEJBプロジェクトを2つの小規模なプロジェクトに分けていないのですか?インターフェイスを含むEJB-APIとクライアント用にこのプロジェクトを使用でき、インターフェイスを実装するEJB-IMPL。クライアントとEJB-IMPLの両方がEJB-APIプロジェクトへの参照を持ちます。

+0

実際、私はEAR内でEJBプロジェクトを作成するときにこのオプションをチェックすることで、eclipseでejbクライアントjarを自動的に作成できることに気付きました。 ejbインタフェースのみがクライアントjarにエクスポートされます。まことにありがとうございます。 –

関連する問題