Spring HibernatePersistence javax.naming.NameNotFoundException与DataSource一起引发

Spring HibernatePersistence javax.naming.NameNotFoundException与DataSource一起引发,spring,hibernate,tomcat,tomcat7,Spring,Hibernate,Tomcat,Tomcat7,我正在使用Hibernate和jta数据源构建一个TomcatServlet应用程序。My persistence.xml包含以下内容: <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/n

我正在使用Hibernate和jta数据源构建一个TomcatServlet应用程序。My persistence.xml包含以下内容:

 <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
     <persistence-unit name="metadata.model" transaction-type="JTA">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>
     <jta-data-source>jdbc/BitronixJTADataSource</jta-data-source>

...
</persistence>
<Context>
<Resource name="jdbc/BitronixJTADataSource" auth="Container"
           type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="10000"
           username="root" password="mysecretpassword"
           driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/metadatadb" />
</Context>
应用程序启动后,我立即发布:

emf = Persistence.createEntityManagerFactory("metadata.model");
entityManager = emf.createEntityManager();
找一个

javax.naming.NameNotFoundException: Name [jdbc/BitronixJTADataSource] is not bound in this Context. Unable to find [jdbc].

您知道为什么会发生这种情况吗?

在persistence.xml中,
jta数据源
应该具有
java:comp/env/jdbc/bitronixjtatasource
值,以便在InitialContext中找到它