1

这是配置:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${connection.driverclass}"/>
    <property name="url" value="${connection.url}/${connection.database}"/>
    <property name="username" value="${connection.username}"/>
    <property name="password" value="${connection.password}"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="mappingLocations">
        <list>
            <value>classpath:path/to/hibernate/mappings/*.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <value>
            hibernate.dialect=${hibernate.dialect}
        </value>
    </property>
</bean>  

当我使用 IDE (IntelliJ IDEA) 就地部署时,一切都按预期工作,但是当我部署到独立的 Tomcat 7 时,BasicDataSource 抛出 UnsuportedOperationException。

调试表明抛出异常是因为使用用户名“sa”调用了 BasicDataSource:getConnection,进一步表明 LocalSessionFactoryBean 正在使用该用户名进行实例化。我对此完全感到困惑,因为我找不到用户名的注入位置。

我正在使用 MariaDB。

4

1 回答 1

0

找到了。

Infinispan Hibernate 依赖项中有一个测试 JAR,其中包含已加载的 hibernate.properties 文件。

于 2013-06-17T10:11:07.493 回答