我对Java很新 - 但是来自PHP + JS。我的目标是使用Java Servlets创建一个CRUD(+ MVC)。
我正在使用 Java EE 7 。我在这里使用this和that创建了一些模式(两者都有相同的最终文件)。
所以,我正在实现MVC,而我似乎无法让我的代码工作。 JPA似乎是主要问题;我无法从数据库中获取任何内容。
Here's the repository(非常小的项目 - 7~8班)。 Models; DAO
我设置controllers.Test
(url:/ test)来测试我是否可以通过JPA与数据库进行实际通信。但是,当我转到/ test(controllers.Test
)时,会抛出异常。 controllers.NewsEdit
(网址:/编辑)也是如此。
java.lang.NullPointerException
controllers.Test.doGet(Test.java:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
当我访问home(url:/; controller.NewsIndex
)时,我没有收到任何例外 - 我收到了主页,但根本没有数据。我有什么不对的吗?
我的SQL文件位于/sql
文件夹中。我在persistent.xml
上获得META-INF/
。
任何帮助或参考将不胜感激。真的需要学习它..
谢谢!
答案 0 :(得分:1)
确定,
关于NullPointerException的lil解释。
当变量(在这种情况下为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