Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 在JAX-RS REST服务应用程序中包括JPA项目_Jakarta Ee_Jpa_Persistence_Jax Rs - Fatal编程技术网

Jakarta ee 在JAX-RS REST服务应用程序中包括JPA项目

Jakarta ee 在JAX-RS REST服务应用程序中包括JPA项目,jakarta-ee,jpa,persistence,jax-rs,Jakarta Ee,Jpa,Persistence,Jax Rs,我写了一个JPA项目,它封装了我所有的实体。因为REST服务项目中也需要这些实体,所以我将JPA项目导出为*.jar,并将其包含在REST项目中(这没有JPA方面) 因此,所有东西都可以部署在服务器上,我可以从前端访问REST服务,但是一旦EntityManager被注入到一个类中,什么都不会发生。 这会导致NullPointerException,因为entityManager不存在 要注入的类被标记为@Stateless,entityManager带有@PersistenceContext注

我写了一个JPA项目,它封装了我所有的实体。因为REST服务项目中也需要这些实体,所以我将JPA项目导出为*.jar,并将其包含在REST项目中(这没有JPA方面)

因此,所有东西都可以部署在服务器上,我可以从前端访问REST服务,但是一旦EntityManager被注入到一个类中,什么都不会发生。 这会导致NullPointerException,因为entityManager不存在

要注入的类被标记为
@Stateless
,entityManager带有
@PersistenceContext
注释

所以问题是:注入是在嵌套项目中工作还是必须手动实例化entityManager

提前谢谢


此外,我将使用GlassFishV3.1.2和JPA2.0来回答我自己的问题。 在netbeans的帮助下,我收集了一些信息,这些信息使我能够轻松地更改项目结构

这就是我所做的:

  • 为其余项目提供JPA方面
  • 将persistence.xml存储在该项目中
  • 在包含实体的jar的PU链接中

这样,我所要做的就是将注入的entityManager传递到实体项目中,我就完成了

如果您使用的是NetBeans 6.9+,那么有一个向导可以完全满足您的需求,包括实体类、Jersey注释、无状态DAO、EntityManager的注入。下载这个IDE是值得的。当您理解了逻辑之后,您可以继续使用您喜欢的想法。现在我正在使用eclipse indigo,但我将立即下载Netbeans并进行尝试。本教程将帮助您:不幸的是,Netbeans似乎无法基于我的实体(添加了0个文件)创建服务。如果从数据库创建的实体在同一个项目中,而不是在一个单独的项目中,这将使我回到我的问题。。。注释的用法与我的例子一样。我很困惑。。。