2012-02-06 11 views
1

私はglassfishアプリケーションサーバーに戦争をロードすると、基本的に例外が発生します。私はmysqlデータベースでSpringのトランザクションマネージャを使用しています。次のように報告されたエラー(フルスタックトレース)は次のようにSpring Transaction Manager(Annotation Style)ランタイムエラー

java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0': Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.getAnnotation(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation; 

マイapplicationContext.xmlをファイルには、次のとおりです。

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:sws="http://www.springframework.org/schema/web-services" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:oxm="http://www.springframework.org/schema/oxm" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> 

    <context:property-placeholder location="classpath:testjdbc.properties"/> 

    <!-- enable the configuration of transactional behavior based on annotations --> 
    <tx:annotation-driven transaction-manager="txManager"/> 

     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value="${jdbc.driverClassName}" /> 
     <property name="url" value="${jdbc.url}" /> 
     <property name="username" value="${jdbc.username}" /> 
     <property name="passwprd" value="${jdbc.password}" /> 
     </bean> 

     <bean name="licenseGenService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> 
     <property name="service" ref="LicensingDaoImpl"/> 
     <property name="serviceInterface" value="mypackage.LicensingDao"/> 
     </bean> 

     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
     <property name ="dataSource" ref="dataSource" /> 
     </bean> 

     <bean id="licenseDAO" class = "myPackage.LicenseDao"> 
     <constructor-arg ref="dataSource" /> 
     </bean> 

     <bean id="licenseGenerator" class ="myPackage.LicenseGeneratorImpl"> 
     <constructor-arg ref = "licenseDAO" /> 
     </bean> 

</beans> 

は、私はかなり不可解なことに、このエラーを見つけるために、それは約泣き言されたクラス私のアプリケーションコンテキストでさえありません。私はSpring 3.1を使っています。ご意見やご協力ありがとうございます。

+0

関連の質問/解決方法:http://stackoverflow.com/questions/9496413/java-lang-nosuchmethoderror-org-springframework-core-annotation-annotationutils –

答えて

5

クラスパスを確認して、そこにすべてバージョンのがあることを確認してください。

+0

マスターアンドコマンダー! – thatidiotguy

+0

以下のTomaszの答えもチェックしてください:すべてのSpring JARが同じバージョンを使用していることを確認してください! –

+0

私は唯一のバージョンのSpring依存関係(3.2.2)を持っていますが、それでも同じエラーが発生しています。プロジェクトをハードワイヤードのjarファイル構成からmavenベースの構成に移行しようとしています。 –

4

あなたのアプリケーションでは、古いバージョンのspring-core*.jarが使用されているようです。すべてのSpring JARが3.1.xバージョンであり、重複がないことを確認してください。

spring-core*.jarは、3.1で導入されたAnnotationUtils.getAnnotation()メソッドを含んでいます。

+0

答えをありがとう! – thatidiotguy

関連する問題