1

我尝试按照Netbeans 电子商务教程来熟悉 Netbeans。我用的是Netbeans 7.0,教程推荐Netbeans 6.8-6.9。通常改编很容易(显示的元素顺序不同,或者有更多字段)。

该教程在第三章中指出:“确保取消选择'Enable Contexts and Dependency Injection'选项。

对于第 7 章,我根据第 7 章的内容对其进行了改编,特别是在以下代码中添加了以下代码ControllerServlet

@EJB
private CategoryFacade categoryFacade;

public void init() throws ServletException {

    // store category list in servlet context
    getServletContext().setAttribute("categories", categoryFacade.findAll()); // line 37
}

当他们说要运行它时,我尝试运行它,并且NullPointerException在第 37 行收到一条消息。第 37 行是上面编写的 init 方法中的实际代码。异常发生在服务器端,所以我猜在某个时候,编写教程的人改变了主意并激活了 CDI。我试图添加一个假人beans.xml来解决这个问题,但没有成功。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
      http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

在此之后,我下载了提供的代码并从他们的“断点”(文件 AffableBean_snapshot3.zip)重新完成工作,我得到了相同的NullPointerException. 在本教程的这一部分 (AffableBean_snapshot4.zip) 之后,我还采用了项目的版本,但它仍然在完全相同的点上失败。

那么,我做错了什么?我真的应该使用 Netbeans 6.9 而不是 7.0 吗?sun-*唯一显着的区别是Netbeans 6.9 和glassfish-*Netbeans 7.0中的一些 xml 文件的文件名。

4

0 回答 0