简体   繁体   English

GAE上的Spring Boot Rest应用程序抛出异常无法转换为javax.persistence.EntityManagerFactory“

[英]Spring Boot Rest App on GAE throws an exception cannot be cast to javax.persistence.EntityManagerFactory"

My Spring Boot Restservice App is running just fine in normal Spring App Context. 我的Spring Boot Restservice App在正常的Spring App Context中正常运行。 But when I try to run it on Google App Engine the following Exception is thrown: 但是当我尝试在Google App Engine上运行它时会抛出以下异常:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.transaction.PlatformTransactionManager]: Factory method 'transactionManager' threw exception; 引起:org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.transaction.PlatformTransactionManager]:工厂方法'transactionManager'引发异常; nested exception is java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory 嵌套异常是java.lang.ClassCastException:org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean $$ EnhancerBySpringCGLIB $$ 1c05fbf5无法强制转换为javax.persistence.EntityManagerFactory

here is the stacktrace of my exception: 这是我的异常的堆栈跟踪:

D:\Progs\JAVA\jdk1.7.0_80\bin\java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50742,suspend=y,server=n -javaagent:D:/Progs/appengine-java-sdk/lib/agent/appengine-agent.jar -Xbootclasspath/p:D:/Progs/appengine-java-sdk/lib/override/appengine-dev-jdk-overrides.jar -Dfile.encoding=windows-1252 -classpath "D:\Progs\appengine-java-sdk\lib\appengine-tools-api.jar;D:\Progs\JAVA\jdk1.7.0_80\lib\tools.jar;D:\Progs\IntelliJ IDEA 14.1.1\lib\idea_rt.jar" com.google.appengine.tools.development.DevAppServerMain -p 8080 --disable_update_check C:\Users\pk\Documents\ItelliJProjects\gps-trackman\target\gps-trackman-0.0.1-SNAPSHOT
Connected to the target VM, address: '127.0.0.1:50742', transport: 'socket'
Apr 18, 2015 11:38:05 AM java.util.prefs.WindowsPreferences <init>
WARNUNG: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Apr 18, 2015 11:38:06 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFORMATION: Successfully processed C:\Users\pk\Documents\ItelliJProjects\gps-trackman\target\gps-trackman-0.0.1-SNAPSHOT\WEB-INF/appengine-web.xml
Apr 18, 2015 11:38:06 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFORMATION: Successfully processed C:\Users\pk\Documents\ItelliJProjects\gps-trackman\target\gps-trackman-0.0.1-SNAPSHOT\WEB-INF/web.xml
Apr 18, 2015 11:38:06 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMATION: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Connected to server
Apr 18, 2015 11:38:07 AM com.google.apphosting.utils.jetty.JettyLogger info
INFORMATION: jetty-6.1.x

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.3.RELEASE)

Apr 18, 2015 11:38:09 AM com.google.appengine.tools.development.ApiProxyLocalImpl log
INFORMATION: javax.servlet.ServletContext log: Initializing Spring embedded WebApplicationContext
2015-04-18 11:38:09.421  INFO ??? --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1429349889417 ms
2015-04-18 11:38:09.439  INFO ??? --- [           main] o.s.boot.SpringApplication               : Starting application on KABUL with PID ??? (C:\Users\pk\Documents\ItelliJProjects\gps-trackman\target\gps-trackman-0.0.1-SNAPSHOT\WEB-INF\lib\spring-boot-1.2.3.RELEASE.jar started by pk in C:\Users\pk\Documents\ItelliJProjects\gps-trackman\target\gps-trackman-0.0.1-SNAPSHOT)
2015-04-18 11:38:09.529  INFO ??? --- [           main] onConfigNonEmbeddedWebApplicationContext : Refreshing org.springframework.boot.legacy.context.web.AnnotationConfigNonEmbeddedWebApplicationContext@73bad293: startup date [Sat Apr 18 11:38:09 CEST 2015]; root of context hierarchy
2015-04-18 11:38:14.349  INFO ??? --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'beanNameViewResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]]
2015-04-18 11:38:14.627  INFO ??? --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Overriding bean definition for bean 'entityManagerFactory': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=appConfig; factoryMethodName=entityManagerFactory; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/pekam/AppConfig.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=true; factoryBeanName=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; factoryMethodName=entityManagerFactory; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]]
2015-04-18 11:38:18.744  INFO ??? --- [           main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2015-04-18 11:38:21.493  INFO ??? --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [class org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$563a5e93] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-04-18 11:38:21.629  INFO ??? --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionAttributeSource' of type [class org.springframework.transaction.annotation.AnnotationTransactionAttributeSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-04-18 11:38:21.670  INFO ??? --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'transactionInterceptor' of type [class org.springframework.transaction.interceptor.TransactionInterceptor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-04-18 11:38:21.691  INFO ??? --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.config.internalTransactionAdvisor' of type [class org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2015-04-18 11:38:23.695  INFO ??? --- [           main] o.s.j.d.DriverManagerDataSource          : Loaded JDBC driver: org.h2.Driver
2015-04-18 11:38:23.696  INFO ??? --- [           main] o.s.j.d.DriverManagerDataSource          : Loaded JDBC driver: com.mysql.jdbc.Driver
2015-04-18 11:38:23.696  INFO ??? --- [           main] o.s.j.d.DriverManagerDataSource          : Loaded JDBC driver: com.mysql.jdbc.Driver
2015-04-18 11:38:29.289  INFO ??? --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2015-04-18 11:38:29.371  INFO ??? --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2015-04-18 11:38:29.759  INFO ??? --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {4.3.8.Final}
2015-04-18 11:38:29.764  INFO ??? --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2015-04-18 11:38:29.770  INFO ??? --- [           main] org.hibernate.cfg.Environment            : HHH000021: Bytecode provider name : javassist
2015-04-18 11:38:30.586  INFO ??? --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
2015-04-18 11:38:30.858  INFO ??? --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2015-04-18 11:38:31.435  INFO ??? --- [           main] o.h.h.i.ast.ASTQueryTranslatorFactory    : HHH000397: Using ASTQueryTranslatorFactory
2015-04-18 11:38:36.502  INFO ??? --- [           main] o.s.b.f.config.PropertiesFactoryBean     : Loading properties file from class path resource [rest-default-messages.properties]
2015-04-18 11:38:37.111  WARN ??? --- [           main] onConfigNonEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [com/pekam/AppConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.transaction.PlatformTransactionManager]: Factory method 'transactionManager' threw exception; nested exception is java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1119)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1014)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139)
    at org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener.initWebApplicationContext(SpringBootContextLoaderListener.java:61)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:266)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:288)
    at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
    at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:87)
    at com.google.appengine.tools.development.Modules.startup(Modules.java:105)
    at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:258)
    at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:213)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:211)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:211)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:284)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:226)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:217)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.transaction.PlatformTransactionManager]: Factory method 'transactionManager' threw exception; nested exception is java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver$3.run(ConstructorResolver.java:582)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
    ... 42 common frames omitted
Caused by: java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.entityManagerFactory(<generated>)
    at com.pekam.AppConfig.transactionManager(AppConfig.java:125)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.CGLIB$transactionManager$2(<generated>)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662$$FastClassBySpringCGLIB$$97c35f17.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.transactionManager(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:130)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 45 common frames omitted

2015-04-18 11:38:37.125  INFO ??? --- [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2015-04-18 11:38:37.139  WARN ??? --- [           main] o.s.boot.SpringApplication               : Error handling failed (Error creating bean with name 'delegatingApplicationListener' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importRegistry' is defined)
2015-04-18 11:38:37.154 ERROR ??? --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [com/pekam/AppConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.transaction.PlatformTransactionManager]: Factory method 'transactionManager' threw exception; nested exception is java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1119)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1014)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139)
    at org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener.initWebApplicationContext(SpringBootContextLoaderListener.java:61)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:266)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:288)
    at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:26)
    at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:87)
    at com.google.appengine.tools.development.Modules.startup(Modules.java:105)
    at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:258)
    at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:47)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:213)
    at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:211)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:211)
    at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:284)
    at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
    at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:226)
    at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:217)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.transaction.PlatformTransactionManager]: Factory method 'transactionManager' threw exception; nested exception is java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver$3.run(ConstructorResolver.java:582)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
    ... 42 common frames omitted
Caused by: java.lang.ClassCastException: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean$$EnhancerBySpringCGLIB$$1c05fbf5 cannot be cast to javax.persistence.EntityManagerFactory
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.entityManagerFactory(<generated>)
    at com.pekam.AppConfig.transactionManager(AppConfig.java:125)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.CGLIB$transactionManager$2(<generated>)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662$$FastClassBySpringCGLIB$$97c35f17.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
    at com.pekam.AppConfig$$EnhancerBySpringCGLIB$$9c2ce662.transactionManager(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:130)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 45 common frames omitted

here is my code of the 这是我的代码

   package com.pekam;

    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    import org.springframework.orm.jpa.JpaTransactionManager;
    import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
    import org.springframework.orm.jpa.vendor.HibernateJpaDialect;
    import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
    import org.springframework.transaction.PlatformTransactionManager;

    import javax.annotation.Resource;
    import javax.persistence.EntityManagerFactory;
    import javax.sql.DataSource;


    @Configuration
    @ComponentScan("com.pekam")
    @EnableAutoConfiguration
    @EnableJpaRepositories



    public class AppConfig {
        @Resource
        Environment env;


    @Bean
    public DataSource MyDataSource() {

        //String str = com.pekam.Settings.this.dbUser;
        DriverManagerDataSource H2DataSource = new DriverManagerDataSource();
        H2DataSource.setDriverClassName("org.h2.Driver");
        H2DataSource.setUrl("jdbc:h2:file:h2\\db");
        H2DataSource.setUsername("sa");
        H2DataSource.setPassword("");

    MsSqlDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");


    DriverManagerDataSource MySqlDataSource = new DriverManagerDataSource();
    MySqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");

        String url = null;

            MySqlDataSource.setDriverClassName("com.mysql.jdbc.Driver");
             url = "jdbc:mysql://localhost:3306/test";
              MySqlDataSource.setUsername("pk");
                MySqlDataSource.setPassword("f7ka1");
                MySqlDataSource.setUrl(url);

        return MySqlDataSource;
}

@Bean
public EntityManagerFactory entityManagerFactory() {

  HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
  vendorAdapter.setGenerateDdl(true);
  vendorAdapter.setShowSql(true);
  vendorAdapter.setDatabasePlatform("org.hibernate.dialect.MySQLDialect");


  LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
  factory.setJpaVendorAdapter(vendorAdapter);
  factory.setJpaDialect(new HibernateJpaDialect());
  factory.setPackagesToScan("com.pekam");
  factory.setDataSource(MyDataSource());
  factory.afterPropertiesSet();


  return factory.getObject();
}

@Bean
public PlatformTransactionManager transactionManager() {

  JpaTransactionManager txManager = new JpaTransactionManager();
  txManager.setEntityManagerFactory(entityManagerFactory());
  return txManager;
}


}

I was having the same problem today converting a part of a Spring application to a Spring Boot application. 今天我遇到了同样的问题,将Spring应用程序的一部分转换为Spring Boot应用程序。 The problem was that Spring kept loading a default entityManagerFactory bean. 问题是Spring继续加载一个默认的entityManagerFactory bean。

In order to use my entityManagerFactory bean I had to return the instance of LocalContainerEntityManagerFactoryBean directly, instead of returning LocalContainerEntityManagerFactoryBean 's getObject() : 为了使用我entityManagerFactory豆我不得不返回实例LocalContainerEntityManagerFactoryBean直接而不是返回, LocalContainerEntityManagerFactoryBeangetObject()

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

  HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
  vendorAdapter.setGenerateDdl(true);
  vendorAdapter.setShowSql(true);
  vendorAdapter.setDatabasePlatform("org.hibernate.dialect.MySQLDialect");

  LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
  factory.setJpaVendorAdapter(vendorAdapter);
  factory.setJpaDialect(new HibernateJpaDialect());
  factory.setPackagesToScan("com.pekam");
  factory.setDataSource(MyDataSource());
  factory.afterPropertiesSet();


  return factory;
}

and then in the configuration of the transactionManager bean call entityManagerFactory().getObject() : 然后在transactionManager bean的配置中调用entityManagerFactory().getObject()

@Bean
public PlatformTransactionManager transactionManager() {

  JpaTransactionManager txManager = new JpaTransactionManager();
  txManager.setEntityManagerFactory(entityManagerFactory().getObject());
  return txManager;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Spring JPA - org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean无法强制转换为javax.persistence.EntityManagerFactory - Spring JPA - org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean cannot be cast to javax.persistence.EntityManagerFactory Spring JPA(Hibernate)没有类型的限定bean:javax.persistence.EntityManagerFactory - Spring JPA (Hibernate) No qualifying bean of type: javax.persistence.EntityManagerFactory 使用Spring 4未定义类型为[javax.persistence.EntityManagerFactory]的合格Bean - No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined Using Spring 4 EntityManagerFactory接口[interface javax.persistence.EntityManagerFactory]似乎与Spring的EntityManagerFactoryInfo mixin冲突 - EntityManagerFactory interface [interface javax.persistence.EntityManagerFactory] seems to conflict with Spring's EntityManagerFactoryInfo mixin jboss5.1 + spring + jpa [未定义类型[javax.persistence.EntityManagerFactory]的唯一bean] - jboss5.1+spring+jpa [ No unique bean of type [javax.persistence.EntityManagerFactory] is defined] Spring MVC测试中未定义类型为[javax.persistence.EntityManagerFactory]的合格Bean - No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined issue in Spring MVC test JPA没有定义[javax.persistence.EntityManagerFactory]类型的限定bean - JPA No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined Springboot:必需找不到类型为&#39;javax.persistence.EntityManagerFactory&#39;的bean - Springboot: Required a bean of type 'javax.persistence.EntityManagerFactory' that could not be found 没有定义类型为[javax.persistence.EntityManagerFactory]的合格bean - No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined java.lang.ClassNotFoundException:javax.persistence.EntityManagerFactory - java.lang.ClassNotFoundException: javax.persistence.EntityManagerFactory
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM