我必须使用接口(IGraphRemote),会话Bean(Graph)和客户端类(AppClient)创建项目

我试图用一个方法寄存器(int hwork,字符串专辑)准备一个简单的项目-将其功课编号传给我,将其专辑收录到相册中,但无法正常工作并返回错误: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"));
    }
}


这是我的项目
java - 一个项目中的依赖注入(inject)-LMLPHP

错误:

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

最佳答案

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

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

10-14 00:08