2

由于某些原因,我必须微调 jdbc 连接,并且我发现 context.xml 是我可以做到这一点的方式。(http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#PostgreSQL

所以,我创建了 context.xml:

<Context>
<Resource
    name="jdbc/connectorDs"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://localhost/somedb"
    username="pguser"
    password="pgpw"
    maxActive="20"
    maxIdle="10"
    maxWait="-1" />
</Context>

在 web.xml 中添加一些配置:

<resource-ref>
    <description>postgreSQL Datasource example</description>
    <res-ref-name>jdbc/connectorDs</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

并修改hibernate.cfg.xml:

<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.datasource">java:jdbc/connectorDs</property>

<!-- THE ORIGINAL CONFIG -->
<!-- <property name="connection.url">jdbc:postgresql://localhost/somedb</property> -->
<!-- <property name="connection.username">pguser</property> -->
<!-- <property name="connection.password">pgpw</property> -->

但是这种配置不起作用:SEVERE: Initial SessionFactory creation failed.org.hibernate.HibernateException: Could not find datasource. 我想数据源不存在或数据源连接字符串java:jdbc/connectorDs不正确。有人对此有任何经验吗?如何正确设置我的连接,或如何在连接上设置其他属性?

提前致谢。

4

2 回答 2

2

在 hibernate.cfg.xml 中,尝试替换

<property name="hibernate.connection.datasource">java:jdbc/connectorDs</property>

<property name="hibernate.connection.datasource">java:/comp/env/jdbc/connectorDs</property>
于 2013-04-11T11:24:20.863 回答
2

尝试

<property name="hibernate.connection.datasource">java:comp/env/jdbc/OracleDS</property>

我认为您不需要在 web.xml 和 server.xml 中声明数据源。如果仍然无法运行,请尝试删除 web.xml 之一

于 2013-04-11T11:27:02.533 回答