我必须创建带有接口(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"));
}
}
错误:
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/