2017-05-27 55 views
0

こんにちは私はEAR、EJB、(動的)WEBの3つのプロジェクトを持っています。私はeclipseとwildfly 10.xを使用しています。ここでは、私はEJBプロジェクトに持っているものです:@EJBは外部プロジェクトのServletで動作しませんWFLYEJB0406

package q.w.e; 

public interface Inter { 
    public String s(); 
} 

package q.w.e; 
public class Ert implements Inter { 
    @Override 
    public String s() { 
     return "hik"; 
    } 
} 

は、ここで私は、動的Webプロジェクトを持っているものです。

package local.bb.lab.servlets; 

import java.io.IOException; 

import javax.ejb.EJB; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import q.w.e.*; 

public class Home extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    @EJB 
    Inter ert; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     request.getRequestDispatcher("/home.jsp").forward(request, response); 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     doGet(request, response); 
    } 

} 

すべての非常にシンプル。私はEARを使ってプロジェクトを接続しました。コンパイラはパッケージとクラスを見ていますが、私はこのエラーが発生しています:

WFLYEJB0406: No EJB found with interface of type 'q.w.e.Inter' for binding local.bb.lab.servlets.Home/ert 

なぜそこに残っているのかわかりません。これはいくつかの設定上の問題でなければなりませんが、私はチュートリアルで示されているようにそれらを接続しました(文字通り同じステップを取った)。私の意見で

+0

@EJB Inter ertを使った場所は?あなたはちょうどそれを注入したようです。 –

答えて

0

あなたが最初に@EJBと@Injectの違いは、あなたはここからチェックすることができるかを知る必要があります:link

をもう一つは、あなたのコードは、あなたが@EJBを使用することはできません理由ですEJBではないですアノテーションを使用する場合は、依存性注入に@Injectを使用する必要があります。

関連する問題