1

我正在尝试自动创建数据库架构并使用参考数据填充它。

为此,我在 hibernate-context.xml 文件中设置 sessionFactory bean,如下所示:

<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource"/>
    <beans:property name="packagesToScan" value="com.pp" />
    <beans:property name="hibernateProperties">
        <beans:props>
            <beans:prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</beans:prop>

            <beans:prop key="hibernate.show_sql">true</beans:prop>
            <beans:prop key="hibernate.format_sql">true</beans:prop>
            <beans:prop key="hibernate.use_sql_comments">true</beans:prop>
            <beans:prop key="hibernate.hbm2ddl.auto">create-drop</beans:prop>
            <beans:prop key="hibernate.hbm2ddl.import_files_sql_extractor">org.hibe‌​rnate.tool.hbm2ddl.M‌​ultipleLinesSqlComma‌​ndExtractor</beans:prop>

            <beans:prop key="entitymanager.packages.to.scan">com.pp.model</beans:prop>
            <beans:prop key="hibernate.default_schema">USER_PP_SCHEMA</beans:prop>
        </beans:props> 
    </beans:property>
</beans:bean>

我有以下错误:

[localhost-startStop-1] 10:21:20,192 错误 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:319) - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException: 使用名称创建 bean 时出错'org.springframework.security.filterChains':使用键 [4] 设置 bean 属性 'sourceList' 时无法解析对 bean 'org.springframework.security.web.DefaultSecurityFilterChain#4' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.security.web.DefaultSecurityFilterChain#4' 的 bean 时出错:无法解析对 bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter# 的​​引用0' 同时使用键 [3] 设置构造函数参数;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0' 的 bean 时出错:无法解析对 bean 'org.springframework.security.authentication.ProviderManager# 的​​引用0' 同时设置 bean 属性 'authenticationManager'; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.security.authentication.ProviderManager#0' 的 bean 时出错:无法解析对 bean 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean# 的引用0' 同时设置构造函数参数;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'org.springframework.security 的 bean 时出错。config.authentication.AuthenticationManagerFactoryBean#0':FactoryBean 在创建对象时抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCreationException:使用名称“org.springframework.security.authenticationManager”创建 bean 时出错:使用键 [0] 设置构造函数参数时无法解析对 bean“customAuthenticationProvider”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“customAuthenticationProvider”的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.pp.dao.UserDAO com.immochan.mercure.service.CustomAuthenticationProvider.userDAO;嵌套异常是 org.springframework.beans.factory。BeanCreationException:创建名为“userDAOImpl”的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 创建名为“userDAOImpl”的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 创建名为“userDAOImpl”的 bean 时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... userDAOImpl':自动装配依赖注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... userDAOImpl':自动装配依赖注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:受保护的 org.hibernate.SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... SessionFactory com.immochan.mercure.dao.MercureDAOImpl.sessionFactory; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义名称为“sessionFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ... 在 ServletContext 资源 [/WEB-INF/spring/hibernate-context.xml] 中定义:调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.tool.hbm2ddl.ImportSqlCommandExtractor] at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329) ...

此错误是由于 multipleLinesSqlCommandExtractor bean 属性引起的,因为当我通过管道输出此行时,它可以正常工作。

<beans:prop key="hibernate.hbm2ddl.import_files_sql_extractor">org.hibe‌​rnate.tool.hbm2ddl.M‌​ultipleLinesSqlComma‌​ndExtractor</beans:prop>

任何想法?

4

0 回答 0