1

データベースの永続性のためにSpringプロジェクトに休止状態を追加しようとしています。最新の安定バージョンである休止状態4.1.6をダウンロードし、Spring 3.1を使用しています。

ただし、プロジェクトを実行しようとすると、次のようになります。

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 
'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': 
Invocation of init method failed; nested exception is java.lang.ClassFormatError:   
Absent Code attribute in method that is not native or abstract in class file  
javax/validation/Validation

これまでにプロジェクトに追加した外部 jar は次のとおりです。

antlr-2.7.7.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.1.6.Final.jar
hibernte-jpa-2.0-api-1.0.1.Final.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
hibernate-entitymanager-4.1.6.Final.jar
slf4j-api-1.6.1.jar

私の pom.xml には、次の依存関係が含まれています。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${hibernate.version}</version>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.1.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
</dependency>
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <scope>runtime</scope>
    <version>1.1.2</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>


<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</scope>
</dependency>
</dependencies>

ご協力いただきありがとうございます。私の質問に変更を加える必要がある場合はお知らせください。

ダニエル

4

1 に答える 1

1

Maven リポジトリの依存関係に問題があるようjavaee-apiです。解決策として、別のものに切り替えることができます

   <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-ejb_3.1_spec</artifactId>
       <version>1.0</version>
       <scope>provided</scope>
   </dependency>
   <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-jpa_2.0_spec</artifactId>
       <version>1.0</version>
       <scope>provided</scope>
   </dependency>

クレジット: このソリューションについては、こちらで説明しています。

@ContextConfiguration(classes={ ... }) で ApplicationContext のロードに失敗しましたおよびJUnit テストケースは eclipse でパスしますが、maven ビルドでは失敗しますも参照してください

更新pom.xml に Hibernate エンティティ マネージャーと Java EE の依存関係がある場合、別の hibernate jar ファイル (JPA 2.0 実装を含む) をダウンロードした理由がわかりません

于 2012-09-04T16:31:10.390 に答える