我必须使用接口(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"));
}
}
这是我的项目
错误:
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/