我对Java相当陌生-尽管来自PHP + JS。我的目标是使用Java Servlet制作CRUD(+ MVC)。

我正在使用Java EE7。在这里,我的某些模式基于thisthat(两者具有相同的最终文件)。

因此,我正在实现MVC,但似乎无法使我的代码正常工作。 JPA似乎是主要问题;我无法从数据库中获取任何信息。

Here's the repository(真正的小项目-7〜8个班级)。 Models; DAO

我已经设置了controllers.Test(url:/ test)来测试我是否真的可以通过JPA与数据库进行通信。但是,当我转到/ test(controllers.Test)时,将引发异常。 controllers.NewsEdit(URL:/ edit)也是如此。

java.lang.NullPointerException
    controllers.Test.doGet(Test.java:36)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)


当我访问首页(url:/; controller.NewsIndex)时,我没有收到异常-获得主页,但没有任何数据。我做错了什么吗?

我的SQL文件位于/sql文件夹中。我在persistent.xml上得到了META-INF/

任何帮助或参考,将不胜感激。真的需要学习它。

谢谢!

最佳答案

好,

有关NullPointerException的详细解释。

如果尚未初始化变量(在本例中为private NewsDAO newsDAO;),则该“指针”指向内存中的任何内容。然后,当您尝试调用方法时,那里什么也没有,并且发生NPE。

这里的问题是私人NewsDAO newsDAO;不是由容器注入的,因此,当您调用newsDAO.all();时,newDAO为null并引发异常。

CDI注入仅发生在由容器管理的组件上。我是一个春季人,所以我不确定该去哪里。尝试找出您的NewsDAO是否正在由容器加载。

Tomcat是一个Web容器...您需要一个带有EJB容器的完整Application Server来运行您的示例。尝试下载并在glassfish,JBoss或任何其他完整的应用程序服务器上运行。

更多信息在这里。

http://en.wikipedia.org/wiki/Application_server#Java_application_servers



http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html

10-06 16:13