Can';无法理解使用JPA、Tomcat、Oracle的连接池错误

Can';无法理解使用JPA、Tomcat、Oracle的连接池错误,tomcat,jpa,oracle10g,connection-pooling,Tomcat,Jpa,Oracle10g,Connection Pooling,我在Tomcat的context.xml中有以下代码: <Resource name="ds/OracleDS" auth="Container" type="javax.sql.DataSource" maxActive="1" maxIdle="2" maxWait="2" username="demo" password="demo" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@lo

我在Tomcat的
context.xml
中有以下代码:

<Resource name="ds/OracleDS" auth="Container" type="javax.sql.DataSource"
maxActive="1" maxIdle="2" maxWait="2"
username="demo" password="demo"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>
我在
persistence.xml
中编写了如下代码:

<persistence-unit name="ReceivablesPU"  transaction-type="RESOURCE_LOCAL">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <non-jta-data-source>java:ds/OracleDS</non-jta-data-source>

persistence.xml
中,第三行应该如下所示:

        <non-jta-data-source>java:comp/env/ds/OracleDS</non-jta-data-source>
java:comp/env/ds/OracleDS

i contex.xml中的更改:

<Resource name="OracleDS" auth="Container" type="javax.sql.DataSource"
    maxActive="1" maxIdle="2" maxWait="2"
    username="demo" password="demo"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    url="jdbc:oracle:thin:@localhost:1521:orcl"/>

i web.xml中的更改:

<resource-ref>
     <description>Oracle Datasource example</description>
     <res-ref-name>OracleDS</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
    </resource-ref>

Oracle数据源示例
神谕
javax.sql.DataSource
容器
i persistence.xml中的更改

<persistence-unit name="ReceivablesPU"  transaction-type="RESOURCE_LOCAL">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <non-jta-data-source>java:comp/env/OracleDS</non-jta-data-source>

oracle.toplink.essentials.PersistenceProvider
java:comp/env/OracleDS

然后我得到了输出…

请查看类似问题(但不是重复问题)的答案:

根据Java EE Web App容器的不同,对于名为“ds/OracleDS”的数据源,在对其进行寻址(如在persistence.xml文件中)时,可能需要在其JNDI上下文前面加上“Java:comp/env”以使其工作

在您的Tomcat案例中,我将尝试以下方法:

<Resource name="ds/OracleDS" auth="Container" type="javax.sql.DataSource"
maxActive="1" maxIdle="2" maxWait="2"
username="demo" password="demo"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>

在web.xml中,您实际上不需要任何东西。xml中的上述配置将使Tomcat将数据源公开为JNDI资源

最后,在persistence.xml中:

<persistence-unit name="ReceivablesPU"  transaction-type="RESOURCE_LOCAL">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <non-jta-data-source>java:comp/env/ds/OracleDS</non-jta-data-source>

oracle.toplink.essentials.PersistenceProvider
java:comp/env/ds/OracleDS
<Resource name="ds/OracleDS" auth="Container" type="javax.sql.DataSource"
maxActive="1" maxIdle="2" maxWait="2"
username="demo" password="demo"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"/>
<persistence-unit name="ReceivablesPU"  transaction-type="RESOURCE_LOCAL">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <non-jta-data-source>java:comp/env/ds/OracleDS</non-jta-data-source>