référence à la source de données JNDI de Tomcat dans persistence.xml

dans server.xml j'ai défini des ressources mondiales (je suis en utilisant Tomcat 6):

<GlobalNamingResources>
   <Resource name="jdbc/myds" auth="Container"
             type="javax.sql.DataSource"
             maxActive="10" maxIdle="3" maxWait="10000"
             username="sa"  password=""
             driverClassName="org.h2.Driver"
             url="jdbc:h2:~/.myds/data/db"
   />
</GlobalNamingResources>

Je vois dans catalina.que c'est lié, donc je suppose que c'est OK.

Dans mon application web, j'ai le lien vers la source de données, je ne suis pas sûr que c'est OK:

<Context>    
 <ResourceLink global='jdbc/myds' name='jdbc/myds' type="javax.sql.Datasource"/>    
</Context>

et dans l'application, il est persistence.xml:

<persistence 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"
             version="2.0">
  <persistence-unit name="oam" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>jdbc/myds</non-jta-data-source>
    <!-- class definitions here, nothing else -->

    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
    </properties>
  </persistence-unit>
</persistence>

Il devrait être OK, mais plus probablement le présent ou le ResourceLink définition est faux, parce que je suis arriver:

javax.de nommage.NameNotFoundException:
Nom jdbc n'est pas lié, dans ce Contexte,

Quel est le problème et pourquoi cela ne fonctionne pas?

Mise à JOUR:

J'ai essayé d'obtenir la source de données directement:

public class WebAppListener implements ServletContextListener
{
    //ServletContextListener interface - start
    public void contextInitialized(ServletContextEvent sce)
    {
        try
        {
            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("java:comp/env");
            DataSource ds = (DataSource)
            envCtx.lookup("jdbc/myds");
        }
        catch (NamingException ex)
        {
            System.out.println("!!!! Got NamingException:");
            ex.printStackTrace(System.out);
        }
    }

    public void contextDestroyed(ServletContextEvent sce) { }

}

mon web.xml:

  <listener>
    <display-name>Listener</display-name>
    <listener-class>WebAppListener</listener-class>
  </listener>

Toujours obtenir la même erreur même si je vois la source de données dans la console JMX lorsque je connecte le Tomcat
(Catalina - Datasource - javax.sql.Source de données = "jdbc/myds" :
ObjectName = Catalina:type=source de données,la classe=javax.sql.Source de données,name="jdbc/myds". )

source d'informationauteur Rostislav Matl