Java 启用spring数据jpa存储库时没有readResolve方法
我正在尝试在我的webapp中启用spring数据JPA,但在启用spring JPA存储库时遇到了一个问题 我正在使用:Java 启用spring数据jpa存储库时没有readResolve方法,java,spring,hibernate,spring-data,spring-data-jpa,Java,Spring,Hibernate,Spring Data,Spring Data Jpa,我正在尝试在我的webapp中启用spring数据JPA,但在启用spring JPA存储库时遇到了一个问题 我正在使用: 春季4.2.5 spring数据jpa 1.9.4 冬眠5 JPA 2(也尝试过2.1) Tomcat 7.0.67 My applicationContext.xml包含: <!-- Activates a load-time weaver for the context. Any bean within the context
- 春季4.2.5
- spring数据jpa 1.9.4
- 冬眠5
- JPA 2(也尝试过2.1)
- Tomcat 7.0.67
<!--
Activates a load-time weaver for the context. Any bean within the context that
implements LoadTimeWeaverAware (such as LocalContainerEntityManagerFactoryBean)
will receive a reference to the auto-detected load-time weaver.
-->
<context:load-time-weaver aspectj-weaving="on" />
<!-- Use this to specify exactly which load-time weaver should be used, but
it should get auto-detected. -->
<!-- <context:load-time-weaver aspectj-weaving="on" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver" /> -->
<!-- Configurer that replaces ${...} placeholders with values from a properties file -->
<!-- (in this case, JDBC-related settings for the dataSource definition below) -->
<context:property-placeholder location="classpath:/META-INF/lf.properties" />
<!-- Apply dependency injection to non-managed classes annotated with the @Configurable -->
<context:spring-configured />
<!-- Auto scan and load Spring components -->
<context:component-scan base-package="com.lf" />
<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" depends-on="entityManagerFactory" />
<!-- JPA EntityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="${jpa.showSql}" />
<property name="database" value="${jpa.database}" />
</bean>
</property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
</property>
<!-- configure Hibernate to participate in JTA transactions using the JOTM transaction manager and
specify further Hibernate specific configuration properties -->
<property name="jpaPropertyMap">
<map>
<!-- Database Configuration -->
<entry key="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />
<entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" />
<entry key="hibernate.format_sql" value="false" />
<entry key="hibernate.use_sql_comments" value="true" />
<entry key="hibernate.ejb.metamodel.generation" value="enabled" />
<entry key="hibernate.default_batch_fetch_size" value="50" />
<entry key="hibernate.order_updates" value="true" />
<!-- READ_COMMITTED -->
<entry key="hibernate.connection.isolation" value="2" />
<!-- Transaction Management -->
<!-- <entry key="hibernate.current_session_context_class" value="org.hibernate.context.ThreadLocalSessionContext" /> -->
<entry key="hibernate.current_session_context_class" value="org.springframework.orm.hibernate5.SpringSessionContext" />
</map>
</property>
</bean>
<!-- Enable Spring Data repositories -->
<jpa:repositories base-package="com.lf.repository"
entity-manager-factory-ref="entityManagerFactory"
transaction-manager-ref="transactionManager" />
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="LeapforcePU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>
</persistence>
这看起来像是某种序列化问题,但我一辈子都找不到导致它的原因。这就是使用AspectJ编织的问题。我为我的域模型类添加了一个排除过滤器,这个问题就消失了。这就是使用AspectJ编织的问题。我为我的域模型类添加了一个排除过滤器,这个问题就消失了。您可以尝试的事情很少:(1)无论您是通过eclipse还是ant进行构建和部署,都要进行干净的构建。(2) 清理tomcat临时目录并重新部署。您可以尝试的事情很少:(1)无论您是通过eclipse还是ant进行构建和部署,都要进行干净的构建。(2) 清理tomcat临时目录并重新部署。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Method [readResolve] was discovered in the .class file but cannot be resolved in the class object
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
...
...
Caused by: java.lang.NoSuchMethodException: com.lf.model.experiment.CustomerGroup.readResolve()
at java.lang.Class.getDeclaredMethod(Class.java:2130)
at org.springframework.core.LocalVariableTableParameterNameDiscoverer$LocalVariableTableVisitor.resolveMember(LocalVariableTableParameterNameDiscoverer.java:245)
... 90 more