0

是否可以在 Spring XD 中将 entityManagerFactory 与 DAOMS Sql一起使用?Hibernate

我的项目中有一个配置类,我在其中编写了项目所需配置所需的 Bean,例如我的DataSourceJDBCTemplate.

我也有豆类

 @Bean(name = "entityManagerFactory")
  public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("sqlServerDataSource") DataSource dataSource) {
      LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
      lef.setDataSource(dataSource);
      lef.setJpaVendorAdapter(jpaVendorAdapter());
      lef.setPackagesToScan("de.id.dih");
      return lef;
  } 

private JpaVendorAdapter jpaVendorAdapter() {
      HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
      hibernateJpaVendorAdapter.setShowSql(true);
      hibernateJpaVendorAdapter.setDatabase(Database.SQL_SERVER);
      return hibernateJpaVendorAdapter;
  }

  @Bean
  public PlatformTransactionManager transactionManager(LocalContainerEntityManagerFactoryBean emf) {
      JpaTransactionManager transactionManager = new JpaTransactionManager();
      transactionManager.setEntityManagerFactory(emf.getObject());
      return transactionManager;
  } 

当我在 Spring XD 中部署我的项目时,

我得到异常:

java.lang.NoClassDefFoundError: org/springframework/orm/jpa/JpaVendorAdapter.

然后,我添加了 spring-boot-starter-data-jpa 的依赖,我得到了异常

java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.boot.SpringApplicationRunListener : org.springframework.boot.context.event.EventPublishingRunListener

我试图在提供和不提供范围的情况下包括对 Spring Boot 的依赖。我什至尝试添加依赖项

hibernate-jpa-2.1-api, 
hibernate-entitymanager, 
spring-orm 

到本地 POM。

我还将依赖项直接移动到 Spring XD lib 文件夹,然后我得到了异常:

ERROR main boot.SpringApplication - Application startup failed
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 org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set .

当我设置 hibernate.dialect 我的异常看起来像:

16:39:23,344 错误 DeploymentsPathChildrenCache-0 server.ContainerRegistrar - 异常部署模块 java.lang.IllegalArgumentException:无法实例化接口 org.springframework.boot.SpringApplicationRunListener:org.springframework.boot.context.event.EventPublishingRunListener 在 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:381) 在 org.springframework.boot.SpringApplication.getRunListeners(SpringApplication.java:352) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:274 ) 在 org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) 在 org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:203) 在 org.springframework.xd.dirt。 module.ModuleDeployer.deploy(ModuleDeployer.java:98) at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) at org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer. java:78) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:231) 在 org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:447) 在 org.springframework.xd 的 org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule(ContainerRegistrar.java:530) .dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:95) 在 org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:826) 在 org.apache.curator.framework.recipes。 cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) at org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503) at org.apache.curator.framework.listen.ListenerContainer$1 .run(ListenerContainer.java:92) at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) at org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500) 在 org.apache.curator.framework。 recipes.cache.EventOperation.invoke(EventOperation.java:35) at org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762) at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:471) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent。 Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java .util.并发。ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) 原因:java.lang .IllegalArgumentException:类 org.springframework.boot.context.event.EventPublishingRunListener 不能分配给 org.springframework.util.Assert.isAssignable(Assert.java:369) 的 org.springframework.util 的接口 org.springframework.boot.SpringApplicationRunListener .Assert.isAssignable(Assert.java:352) 在 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) ... 29 更多lang.IllegalArgumentException:类 org.springframework.boot.context.event.EventPublishingRunListener 不能分配给 org.springframework.util.Assert.isAssignable(Assert.java:369) 处的接口 org.springframework.boot.SpringApplicationRunListener。 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) 上的 util.Assert.isAssignable(Assert.java:352) ... 还有 29 个lang.IllegalArgumentException:类 org.springframework.boot.context.event.EventPublishingRunListener 不能分配给 org.springframework.util.Assert.isAssignable(Assert.java:369) 处的接口 org.springframework.boot.SpringApplicationRunListener。 org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:375) 上的 util.Assert.isAssignable(Assert.java:352) ... 还有 29 个getSpringFactoriesInstances(SpringApplication.java:375) ... 还有 29 个getSpringFactoriesInstances(SpringApplication.java:375) ... 还有 29 个

是否有人知道可能导致此异常的原因?

非常感谢有关 Spring-XD 的上述工作示例的帮助。

谢谢

4

0 回答 0