我一直在尝试学习 Java EE,但我永远无法运行 EJB 示例。Oracle 的指南使用 netbeans,但我必须学习如何在 Eclipse 中进行操作。书籍也没有任何帮助或 youtube 视频。
我可以毫无问题地运行 servlet、jsp、jsf,但我总是遇到 EJB 问题。我错过了什么?
我认为问题出在 Eclipse 中的配置。我在 Eclipse 中的项目结构如下:
HelloWorld.java 文件的代码:
package helloworld.ejb;
import javax.ejb.Remote;
@Remote
public interface HelloWorld {
public String outputHelloWorld();
}
HelloWorldBean.java 文件的代码
package helloworld.ejb;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorld {
public String outputHelloWorld() {
return "Hello World!";
}
}
HelloWorldClient.java 的代码
package helloworldprojectclient;
import javax.ejb.EJB;
import helloworld.ejb.HelloWorld;
public class HelloWorldClient {
@EJB
private static HelloWorld helloWorld;
public static void main (String[] args) {
System.out.println(helloWorld.outputHelloWorld());
}
}
我使用 Glassfish 4.0 作为服务器。HelloWorldProject 是一个“EJB 项目”,而“helloworldprojectclient”是一个常规 Java 项目,我已将 javaee.jar(来自 glassfish 目录)添加到构建路径中。
当我尝试运行 HelloWorldClient.java 时,出现以下异常:
Exception in thread "main" java.lang.NullPointerException
at helloworldprojectclient.HelloWorldClient.main(HelloWorldClient.java:10)
这是以下行: System.out.println(helloWorld.outputHelloWorld());
问题是什么?我提到我是 EJB 的初学者。谢谢!