【问题标题】:@EJB not working in Servlet in external project WFLYEJB0406@EJB 在外部项目 WFLYEJB0406 中的 Servlet 中不起作用
【发布时间】:2017-10-28 07:15:58
【问题描述】:

您好,我有 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

我不知道为什么它仍然存在。这一定是一些配置问题,但我按照教程中显示的方式连接了它们(实际上采取了相同的步骤)。

【问题讨论】:

  • 请问你在哪里使用了@EJB Inter ert?我好像你刚刚注入了它。

标签: java eclipse servlets jakarta-ee


【解决方案1】:

在我看来,您首先需要知道@EJB 和@Inject 之间的区别,您可以从这里查看:link

另一件事是你的代码不是EJB,这就是为什么你不能使用@EJB注解,你应该使用@Inject进行依赖注入。

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 2015-03-20
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多