2011-10-20 6 views
6
public class Servlet2Stateless extends HttpServlet { 

@EJB private HelloUserLocal helloUser; 

    @Override 
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 

     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 
     out.println(newSess.getName()); 


} 

私はEJBやサーブレットが異なるサーバー上に展開していたときに?または伝統的な方法でそれを呼び出す必要がありますか?@EJBリモートコールのアノテーションは機能しますか?意志コード作業のライン上の

答えて

6

EJBがクライアント(サーブレット)とは異なるサーバーにある場合、@EJBアノテーションで依存関係注入を使用することはできません。

私はあなたが古いJNDI道を行く必要があるだろうと推測します。

2

EJB 3.1仕様によると、あなたはあなたのケースであるサーブレットなどのクライアントの様々な@EJBアノテーションを使用することができます。

問題は、異なるホストでクライアントとサーバーを実行していることです。使用しているサーバーによっては、EJBアノテーションを使用できる場合があります。 This postはWeblogicでそれを行う方法を説明しています。あなたはどちらの場合には@RemoteなどのサーバーEJBを定義する必要が言うこと

言うまでもないです。あなたのコンテナはまた、CDIをサポートしている場合

0

は、あなたはJNDIルックアップを行いwhcih BeanのCDIのプロデューサメソッドを書くことができます。次に、注射部位からの検索を少なくとも分離することができます。

0

スタンドアロンクライアントに依存性注入を使用してはどう?

関連する問題