您好我有3个项目:EAR,EJB和(动态)WEB。我正在使用eclipse和wildfly 10.x.这是我在EJB项目中得到的:
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";
}
}
以下是我在动态网络项目中所拥有的内容:
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 :(得分:0)
在我看来,你需要先了解@EJB和@Inject之间的区别,你可以从中检查:link
另一件事是您的代码不是 EJB ,这就是为什么您不能使用@EJB
注释,您应该使用@Inject
来依赖注入。