私はTomcat接続プール、jpa、hibernateを使用しています。tomcatのcontext.xmlで作成したデータソースは、次を使用して取得しようとすると正常に機能します。
source = (DataSource) ((Context) c.lookup("java:comp/env")).lookup("jdbc/kids");
しかし、persistence.xmlでこのjndiデータソースを指定した場合
<persistence-unit name="kids-tomcat" transaction-type="JTA">
<jta-data-source>jdbc/kids</jta-data-source>
</persistence-unit>
次の例外が発生します:org.hibernate.service.jndi.JndiException:JNDI名を検索できません[jdbc / kids]
なぜそれが起こる可能性があるのか考えてみてください!