创建名称为'sessionFactory'的Bean时出错。无法实例化默认的tuplizer (SpringJUnit4ClassRunner)

问题描述 投票:0回答:1

我正在更新一个10多年前的老webapp,我不得不更新一些Spring和Hibernate的依赖关系,以便与新的JDK和应用服务器一起工作。现在我正试图让我的一个单元测试运行,但它在注入依赖关系时出现了问题。

我的应用是使用注释配置的。我的应用程序使用注解进行配置,我有一个 AppConfig 类,它有一个 @Bean AnnotationSessionFactoryBean sessionFactory() 方法。

@Configuration
@EnableAsync
@EnableTransactionManagement
@ComponentScan(basePackageClasses = { <redacted>.model.User.class,
                                        <redacted>.dao.UserDAOHibernate.class,
                                        <redacted>.web.services.PushService.class })
public
class
AppConfig
{
    @Bean
    public
    AnnotationSessionFactoryBean
    sessionFactory()
    {
        DataSource dataSource = (DataSource) dataSource().getObject();

        AnnotationSessionFactoryBean bean = new AnnotationSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setPackagesToScan(new String[] {"<redacted>.model"});
        //  bean configuration here 
        return bean;
    }
}

测试类看起来像

@RunWith(org.springframework.test.context.junit4.SpringJUnit4ClassRunner.class)
@WebAppConfiguration("file:target/build")
@ContextConfiguration(classes = {
                        <redacted>.AppConfig.class,
                        <redacted>.WebConfig.class })
public class TestController
{
    //  tests
}

当我用 mvn test我得到这个错误。

Error creating bean with name 'sessionFactory' defined in <redacted>.AppConfig:
Invocation of init method failed; nested exception is org.hibernate.HibernateException:
Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]

请注意,我是 在我的应用程序中任何地方使用spring-boot。

我在网上找到的所有东西都很老旧了,但似乎表明它与各种依赖的版本有关,而且它也与 建议 命名的bean缺少它的setter。但是 sessionFactory 并不是一个成员变量,而是一个返回工厂的方法。

我写这个的时候,Hibernate 3是最新的。我现在用的是hibernate-core 3.6.10.Final,Spring(core、orm、test等)4.3.27.RELEASE。

它指的是什么init方法?有什么想法,是哪里出了问题?谢谢。

更新一下。 看来我的 sessionFactory() 方法的调用和执行都很好(用日志验证),所以我真的不知道错误信息告诉我什么。

Maven测试输出和堆栈跟踪。

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running <redacted>.web.TestController
May 19, 2020 3:07:51 AM org.springframework.test.context.web.WebTestContextBootstrapper getDefaultTestExecutionListenerClassNames
INFO: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
May 19, 2020 3:07:51 AM org.springframework.test.context.web.WebTestContextBootstrapper getTestExecutionListeners
INFO: Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@564718df, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@51b7e5df, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@18a70f16, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62e136d3, org.springframework.test.context.transaction.TransactionalTestExecutionListener@c8e4bb0, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6279cee3]
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder activate
INFO: Activating simple JNDI environment
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder bind
INFO: Static JNDI binding: [java:comp/env/jdbc/db] = [ds0: url=jdbc:h2:mem:testmdb;MODE=MySQL;DB_CLOSE_DELAY=-1;TRACE_LEVEL_SYSTEM_OUT=0;TRACE_LEVEL_FILE=0;IGNORECASE=false; user=testuser]
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder bind
INFO: Static JNDI binding: [java:comp/env/apns/prod/keystorePath] = [<unset>]
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder bind
INFO: Static JNDI binding: [java:comp/env/apns/prod/keystorePassword] = [<unset>]
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder bind
INFO: Static JNDI binding: [java:comp/env/apns/dev/keystorePath] = [<unset>]
May 19, 2020 3:07:51 AM org.springframework.mock.jndi.SimpleNamingContextBuilder bind
INFO: Static JNDI binding: [java:comp/env/apns/dev/keystorePassword] = [<unset>]
May 19, 2020 3:07:51 AM org.springframework.web.context.support.GenericWebApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.GenericWebApplicationContext@3f6db3fb: startup date [Tue May 19 03:07:51 PDT 2020]; root of context hierarchy
May 19, 2020 3:07:52 AM org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>
INFO: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
03:07:52.141 [main] ERROR <redacted>.web.config.AppConfig - here
03:07:52.214 [main] ERROR <redacted>.web.config.AppConfig - foo
03:07:52.232 [main] ERROR <redacted>.web.config.AppConfig - dataSource: ds0: url=jdbc:h2:mem:testmdb;MODE=MySQL;DB_CLOSE_DELAY=-1;TRACE_LEVEL_SYSTEM_OUT=0;TRACE_LEVEL_FILE=0;IGNORECASE=false; user=testuser
03:07:52.235 [main] ERROR <redacted>.web.config.AppConfig - bean: org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean@1d12b024
03:07:52.236 [main] ERROR <redacted>.web.config.AppConfig - returning bean
[main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
[main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.10.Final
[main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
[main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
[main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.APNsToken
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.APNsToken on table APNsToken
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.DataRequest
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.DataRequest on table DataRequest
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.Device
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.Device on table Device
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.Image
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.Image on table Image
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.Mission
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.Mission on table Mission
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.MissionEvent
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.MissionEvent on table MissionEvent
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.NewsItem
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.NewsItem on table NewsItem
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.ObjectGroup
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.ObjectGroup on table SatelliteGroup
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.ProblemReport
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.ProblemReport on table ProblemReport
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.Satellite
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.Satellite on table Satellite
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.TLE
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.TLE on table TLE
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.Text
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.Text on table Text
[main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: <redacted>.model.User
[main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity <redacted>.model.User on table User
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.Device.mDataRequests -> DataRequest
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.Device.mTokens -> APNsToken
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.Mission.mEvents -> MissionEvent
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.Mission.mImages -> Image
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.ObjectGroup.mChildren -> SatelliteGroup
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.ObjectGroup.mObjects -> Satellite
[main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: <redacted>.model.Satellite.mTLEs -> TLE
[main] INFO org.hibernate.cfg.Configuration - Hibernate Validator not found: ignoring
May 19, 2020 3:07:52 AM org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
[main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
[main] INFO org.hibernate.connection.ConnectionProviderFactory - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
[main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
[main] INFO org.hibernate.cfg.SettingsFactory - Database ->
       name : H2
    version : 1.4.200 (2019-10-14)
      major : 1
      minor : 4
[main] INFO org.hibernate.cfg.SettingsFactory - Driver ->
       name : H2 JDBC Driver
    version : 1.4.200 (2019-10-14)
      major : 1
      minor : 4
[main] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
[main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
[main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 200
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
[main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
[main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
[main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
[main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
[main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
[main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
[main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
[main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
[main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
[main] INFO org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge - Cache provider: org.hibernate.cache.NoCacheProvider
[main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Statistics: enabled
[main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
[main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
[main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
[main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): disabled
[main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [blob] overrides previous : org.hibernate.type.BlobType@5de5e95
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Blob] overrides previous : org.hibernate.type.BlobType@5de5e95
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_materialized_blob] overrides previous : org.hibernate.type.WrappedMaterializedBlobType@365cdacf
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_clob] overrides previous : org.hibernate.type.MaterializedClobType@303c55fa
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [wrapper_characters_clob] overrides previous : org.hibernate.type.CharacterArrayClobType@9efcd90
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@7eb200ce
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [characters_clob] overrides previous : org.hibernate.type.PrimitiveCharacterArrayClobType@2ee83775
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [clob] overrides previous : org.hibernate.type.ClobType@7c2924d7
[main] INFO org.hibernate.type.BasicTypeRegistry - Type registration [java.sql.Clob] overrides previous : org.hibernate.type.ClobType@7c2924d7
May 19, 2020 3:07:52 AM org.springframework.web.context.support.GenericWebApplicationContext refresh
WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataRequestDAOHibernate': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in <redacted>.web.config.AppConfig: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
May 19, 2020 3:07:52 AM org.springframework.test.context.TestContextManager prepareTestInstance
SEVERE: Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@564718df] to prepare test instance [<redacted>.web.TestController@39ee94de]
java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:189)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:131)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:377)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:138)
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:465)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:451)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataRequestDAOHibernate': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in <redacted>.web.config.AppConfig: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1257)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:757)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
    at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:130)
    at org.springframework.test.context.web.AbstractGenericWebContextLoader.loadContext(AbstractGenericWebContextLoader.java:61)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:281)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:249)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
    ... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in <redacted>.web.config.AppConfig: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1619)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:211)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1063)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:518)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:496)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:627)
    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:171)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
    ... 44 more
Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:108)
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:795)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:191)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1677)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1615)
    ... 59 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)
    ... 72 more
Caused by: java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
    at org.hibernate.bytecode.javassist.BytecodeProviderImpl.getProxyFactoryFactory(BytecodeProviderImpl.java:49)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactoryInternal(PojoEntityTuplizer.java:205)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:183)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
    ... 78 more
Caused by: java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 83 more

spring hibernate spring-test spring-annotations spring-test-mvc
1个回答
0
投票

感谢@SternK在问题评论中提供的答案。我需要javassist。

© www.soinside.com 2019 - 2024. All rights reserved.