java - EJB 注入(inject)不起作用

标签 java jakarta-ee dependency-injection ejb netbeans-7

我有 2 个 EJB 模块项目,我想从其中一个项目调用另一个项目的无状态无接口(interface) bean。我想注入(inject)要使用 EJB 注释调用的 bean。问题是注入(inject)不起作用(如果相关,我使用 NetBeans 7.4)。

被调用的无状态无接口(interface) EJB:

package standalonepackage;

import javax.ejb.Stateless;
import javax.ejb.LocalBean;


@Stateless
@LocalBean

public class StandaloneBean {

     private static final String message="Greetings!";

     public String returnMessage(){
          return message;
     }
}

调用上面bean的bean的接口(interface)(这个ejb驻留在另一个ejb module project中)

@Local
public interface ExampleBeanLocal {

     public String getMessage();
}

接口(interface)的实现:

@Stateless
public class ExampleBean implements ExampleBeanLocal {

    @EJB
    private StandaloneBean standaloneBean;

    @Override
    public String getMessage() {
        return String.format("Me - and the second message %s",  standaloneBean.returnMessage());
    }

}

我还有一个主类,它只是调用 ExampleBean getMessage 方法(MainClass 位于第二个 ejb 模块项目中):

public class MainClass {


    private static ExampleBeanLocal instance = new ExampleBean();

    public static void main(String[] args) {

        System.out.println(instance.getMessage());
    }
}

我错过了什么?

最佳答案

首先,如果您想以 EJB 的形式访问您的业务逻辑,那么首先您需要在应用程序服务器中部署 EJB。在部署过程中,应用程序服务器将创建一些称为 JNDI 名称的东西,它就像一个访问您的业务逻辑的入口。

其次,您可以通过两种方式调用 EJB。 1.使用JNDI名称创建ContextLookup 2.使用上下文依赖注入(inject)CDI(仅在同一个容器内)

您不能使用来自 POJO 的 CDI 调用 EJB(因为它不包含在任何容器中,并且您访问的 EJB 位于不同的 JVM 中)。如果您想从 POJO 访问 EJB,则需要使用 @Remote 并使用 ContextLookup 方式访问 EJB,您可以在此处找到更多信息 http://wiki.netbeans.org/CreatingEJB3UsingNetbeansAndGlassfish

关于java - EJB 注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22010530/

相关文章:

jakarta-ee - Glassfish 服务器上的自动 EJB 计时器未触发

multithreading - 在 JSF 2 的 requestScoped bean 中显式创建 session

scala - Play with @ 中的依赖注入(inject) Controller

c# - 如何将 DI 与 UserManager 和 UserStore 结合使用

asp.net-core - 如何将带有注入(inject)的 razor 页面转换为代码隐藏?

java - 在所有子项目中的所有测试之前运行子项目中的 checkstyles

java - 由 : java. lang.NoClassDefFoundError : org. apache.http.util.Args 引起

java - 在泛型集合中实现 remove(Object o)

java - SpringBoot进程运行时性能问题

java - 404 与 response.sendRedirect