0

I have a JHipster project with a microservice and a gateway. Both were generated through JHipster. Application deployed in Docker using docker-compose. I am trying to implement Hibernate 2nd level cache for the microservice with Apache Ignite. For this, I used following maven dependency in pom.xml based on Apache Ignite official documentation. When I run the project I get the following error

Invocation of destroy method failed on bean with name 'scopedTarget.eurekaClient': org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaInstanceConfigBean': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
projects-app_1       | 2018-02-26 17:04:54.649 ERROR 7 --- [           main] o.s.boot.SpringApplication               : Application startup failed
projects-app_1       | 
projects-app_1       | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: Method org/apache/ignite/cache/hibernate/HibernateRegionFactory.start(Lorg/hibernate/boot/spi/SessionFactoryOptions;Ljava/util/Properties;)V is abstract
projects-app_1       |  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
projects-app_1       |  at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
projects-app_1       |  at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1080)
projects-app_1       |  at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:857)
projects-app_1       |  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
projects-app_1       |  at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
projects-app_1       |  at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
projects-app_1       |  at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
projects-app_1       |  at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
projects-app_1       |  at com.projects.ProjectsApp.main(ProjectsApp.java:68)
projects-app_1       |  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
projects-app_1       |  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
projects-app_1       |  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
projects-app_1       |  at java.lang.reflect.Method.invoke(Method.java:498)
projects-app_1       |  at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
projects-app_1       |  at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
projects-app_1       |  at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
projects-app_1       |  at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59)
projects-app_1       | Caused by: java.lang.AbstractMethodError: Method org/apache/ignite/cache/hibernate/HibernateRegionFactory.start(Lorg/hibernate/boot/spi/SessionFactoryOptions;Ljava/util/Properties;)V is abstract
projects-app_1       |  at org.apache.ignite.cache.hibernate.HibernateRegionFactory.start(HibernateRegionFactory.java)
projects-app_1       |  at org.hibernate.cache.spi.RegionFactory.start(RegionFactory.java:63)
projects-app_1       |  at org.hibernate.internal.CacheImpl.<init>(CacheImpl.java:71)
projects-app_1       |  at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:28)
projects-app_1       |  at org.hibernate.engine.spi.CacheInitiator.initiateService(CacheInitiator.java:20)
projects-app_1       |  at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.initiateService(SessionFactoryServiceRegistryImpl.java:59)
projects-app_1       |  at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
projects-app_1       |  at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
projects-app_1       |  at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
projects-app_1       |  at org.hibernate.service.internal.SessionFactoryServiceRegistryImpl.getService(SessionFactoryServiceRegistryImpl.java:80)
projects-app_1       |  at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:244)
projects-app_1       |  at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:452)
projects-app_1       |  at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:889)
projects-app_1       |  at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
projects-app_1       |  at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:360)
projects-app_1       |  at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:382)
projects-app_1       |  at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:371)
projects-app_1       |  at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:336)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
projects-app_1       |  at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
projects-app_1       |  ... 22 common frames omitted

Code uploaded to github

Pavan Jadda
  • 4,306
  • 9
  • 47
  • 79

1 Answers1

3

What version of Hibernate are you using?

I can see that in Apache Ignite 2.3, there's hibernate-5.1 module with 5.1.5.Final support and hibernate-4.2 module with 4.2.21.Final support. Make sure you use the correct one and not the other! Make sure that you only have one on classpath and not the other, you can get confusing results otherwise.

alamar
  • 18,729
  • 4
  • 64
  • 97
  • Yeah. I figured that out a few minutes ago. I am trying again with new version – Pavan Jadda Feb 26 '18 at 19:58
  • Changing hibernate dependencies to 5.1.5.Final produces error "Caused by: liquibase.exception.UnexpectedLiquibaseException: java.util.zip.ZipException: invalid block type". Complete error message can be found here https://github.com/pavankjadda/ApacheIgnite-JHipster-Docker/issues/4 – Pavan Jadda Feb 27 '18 at 17:03
  • @Jadda looks like one of your JARs got corrupted or truncated, which shouldn't be related to Ignite (unless it's one of official Apache Ignite jars). You should figure out which jar is that. Use `jar vtf` for that – alamar Feb 27 '18 at 17:07
  • I checked all the jar files, everything looks good. I deleted all maven dependencies and built the project again. Now it produces following error "Unable to resolve name [org.apache.ignite.cache.hibernate.HibernateRegionFactory] as strategy [org.hibernate.cache.spi.RegionFactory" – Pavan Jadda Mar 01 '18 at 17:31
  • I created a new question as the issue not related to this anymore. https://stackoverflow.com/questions/49056112/unable-to-resolve-name-org-apache-ignite-cache-hibernate-hibernateregionfactory – Pavan Jadda Mar 01 '18 at 18:14