2015-07-20 38 views
1

我有一些服務對象持久化上下文和麪對空EntityManager時運行爲什麼EntityManager不是通過Tomcat8環境中的@PersistenceContext注入的?

@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> 

貌似PersistenceContext找不到我的xml ..... persistence.xml存在於「src/META-INF/persistence.xml」 中,並且所有其他來源都駐留在「src/model/Point」

我嘗試在Tomcat 8 web容器上運行此項目。

+0

而且當你部署war時,tomcat在日誌文件中寫什麼? –

+1

Tomcat8不支持CDI,也不支持EJB。您需要一個完整的應用程序服務器:JBoss,Glassfish等。 –

回答

相關問題