Jakarta ee 在Servlet中注入EntityManager?

Jakarta ee 在Servlet中注入EntityManager?,jakarta-ee,servlets,jpa,ejb,entitymanager,Jakarta Ee,Servlets,Jpa,Ejb,Entitymanager,我想将EM注入Servlet,持久化单元在ejbjar中声明。我有一个EJBJAR和一场战争的耳朵 问题是我遇到了以下错误: 无法解析对应于的持久性单元 持久性上下文引用名称[cvu.JpaServlet/em],位于 模块调用 如果我在战争中使用persistence.xml,它可以正常工作,但我不想这样做 我可以从EJBJAR中声明的PersistenceUnit(persistence.xml)中获取EntityManager吗?我认为需要将EJBJAR添加到wars类路径中 通常,您应该

我想将EM注入Servlet,持久化单元在ejbjar中声明。我有一个EJBJAR和一场战争的耳朵
问题是我遇到了以下错误:

无法解析对应于的持久性单元 持久性上下文引用名称[cvu.JpaServlet/em],位于 模块调用

如果我在战争中使用persistence.xml,它可以正常工作,但我不想这样做


我可以从EJBJAR中声明的PersistenceUnit(persistence.xml)中获取EntityManager吗?

我认为需要将EJBJAR添加到wars类路径中

通常,您应该将EntityManagerFacory注入Servlet,而不是EntityManager,因为Servlet是共享的


您还可以使用SessionBeans包装您的持久性。

我将所有持久性类&persistence.xml移动到一个
persistent.jar
,并将其放入
ear/lib
。现在它可以从EJB和WAR中工作。如果将
persistence.xml
放在
name.war/WEB-INF/classes/META-INF/persistence.xml
中,您将无法在EJB中使用它。如果将其放入EJB中,您将无法在战争中使用
@PersistenceUnit EntityManagerFactory
。为了在战争中访问它,您还可以将它放在
WEB-INF/lib/persist.jar/META-INF/persistence.xml
中。但更好的还在耳边。

是的,我知道,但我只想测试一下:)我将在war的类路径中使用EJBJAR来尝试这件事。。Servlet确实看到了SessionBeans,为什么他看不到持久性单元呢!?