java - 一个项目中的依赖注入(inject)

标签 java netbeans ejb ejb-3.0

我必须创建带有接口(interface)(IGraphRemote)、sessionbean(Graph)和客户端类(AppClient)的项目

我尝试使用一种方法 register(int hwork, String album) 准备简单的项目 - hwork 是我的作业编号,album 是我的相册编号,但它不起作用并返回错误: java.lang .NullPointerException ,因此未建立连接。我该如何解决这个问题?

我的文件: IGraphRemote

public interface IGraphRemote {
    public boolean register(int hwork, String album);

}

图表

@Remote
public class Graph implements IGraphRemote{
   public boolean register(int hwork, String album) {      
       return (hwork == 6
                && album.equals("119962"));
    }  
}

和AppClient

public class AppClient {

    @EJB
    private static IGraphRemote gremote;

    public static void main(String[] args) {

        AppClient ap = new AppClient();             
        System.out.println(ap.gremote.register(6, "119962"));
    }
}

这是我的项目 project structure

错误:

Exception in thread "main" java.lang.NullPointerException
    at AppClient.main(AppClient.java:22)
Java Result: 1

最佳答案

从您的代码和堆栈跟踪中可以明显看出,您尝试使用 Web 应用程序中的 main 方法运行标准 j2se 应用程序,因此除非有其他代码创建了依赖注入(inject),否则您如何期望依赖注入(inject)发生ejb 实例并将其注入(inject) ejb 引用中。 EJB是一个J2EE组件,它不能在标准java应用程序中创建,您需要一个带有命名服务的ejb容器来管理EJB生命周期。您可以通过连接到命名服务并查找 bean 来创建标准 j2se 客户端,但您的 EJB 必须首先部署在 ejb 容器中,例如 TomEE、Glassfish、websphere 等

关于java - 一个项目中的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118049/

相关文章:

java - 应用程序客户端中的 EJB 注入(inject)不起作用

java - FetchType.LAZY 位于父级的 @OneToMany 上,FetchType.EAGER 位于子级的 @ManyToOne 上

java - Imap 空闲(假)不接收所有电子邮件

python - 将 Netbeans 键盘映射导入 Eclipse

java - Jboss中的EJB异常

java - Java 中自定义持久性框架的需求是什么?

java - 如何为我的团队重新打包 Eclipse

java - 无法使用 try-with-resources 或 finally block

java - 如何使用 Java 获取应用程序的 GUI Activity

netbeans - 如何使用 Netbeans 设置 JBoss 服务器?