Java 为什么EntityManager没有在Tomcat8环境中通过@PersistenceContext注入?

Java 为什么EntityManager没有在Tomcat8环境中通过@PersistenceContext注入?,java,tomcat,servlets,jpa,Java,Tomcat,Servlets,Jpa,我有一些服务可以将对象持久化到上下文,并在运行它时面对nullEntityManager @Stateless public class PointServies { @PersistenceContext(name="pointProvider",type = PersistenceContextType.EXTENDED) private EntityManager em; public void addMovie(Point point) throws Exception {

我有一些服务可以将对象持久化到上下文,并在运行它时面对null
EntityManager

@Stateless
public class PointServies {

@PersistenceContext(name="pointProvider",type = PersistenceContextType.EXTENDED)
private EntityManager em;

public void addMovie(Point point) throws Exception {
    em.persist(point); // em is null here.
}
}
这是我的persistence.xml

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence

http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"

version="2.1">

<persistence-unit name="pointProvider">

    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <class>model.Point</class>

    <properties>
        <!-- Configuring JDBC properties -->
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/testdb" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="admin" />
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />

        <!-- Hibernate properties -->
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        <property name="hibernate.hbm2ddl.auto" value="update" />

        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
    </properties>
</persistence-unit>

org.hibernate.jpa.HibernatePersistenceProvider
模型点

看起来
PersistenceContext
找不到我的xml。。。。。
persistence.xml
存在于“src/META-INF/persistence.xml”中 所有其他源都位于“src/model/Point”中


我尝试在Tomcat 8 web容器上运行此项目。

默认情况下,Tomcat不支持EJB,我也可以命令您,或者使用像或这样的全堆栈应用程序服务器。

当您部署war时,Tomcat在日志文件中写了什么?Tomcat 8不支持CDI,也不支持EJB。您需要一个完整的堆栈应用服务器:JBoss、Glassfish等。