2016-03-25 13 views
1

WebアプリケーションでSpringデータJPAを有効にしようとしていますが、spring jpaリポジトリを有効にする際に問題が発生しています。spring-data-jpaリポジトリを有効にするとreadResolveメソッドがありません

私が使用しています:

  • スプリング4.2.5
  • ばねデータJPA 1.9.4
  • 休止5
  • JPA 2(また、2.1を試してみました)
  • のTomcat 7.0 .67

私のapplicationContext.xmlには、次の情報が含まれています。

<!-- 
      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.xmlは含まれています

<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> 

私はJPAを有効たび:

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 

それは次のようになります。リポジトリのタグをapplicationContext.xmlをして、私は次の例外を取得シリアル化の問題のいくつかの種類が、私は私の人生のためにそれを引き起こしているものを見つけることはできません。

+0

試してみることはほとんどありません(1)EclipseやAntでビルドしているかどうかに関係なく、きれいなビルドを実行します。 (2)tomcatのtempディレクトリをクリーンアップして再デプロイします。 –

答えて

0

これは、AspectJ製織を使用する際に問題となりました。ドメインモデルクラスの除外フィルタを追加しました。問題は解決しました。

関連する問題