2017-05-27 55 views
0

您好我有3個項目:EAR,EJB和(動態)WEB。我使用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進行依賴注入。