2011-10-27 5 views
3

Springを使用しようとしています3.0.5.RELEASEとMaven環境でMyBatisを併用しました。 mybatis-spring依存関係を追加しました。これは、MalformedParameterizedTypeExceptionのために動作しないことが判明しました(詳細なスタックトレースが以下に含まれています)。Spring 3とMyBatis 3.0.4/3.0.6:MalformedParameterizedTypeException

スタックトレース:

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) 
    at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.reflect.MalformedParameterizedTypeException 
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:60) 
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:53) 
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:95) 
    at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:104) 
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:140) 
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 
    at sun.reflect.generics.visitor.Reifier.visitArrayTypeSignature(Reifier.java:159) 
    at sun.reflect.generics.tree.ArrayTypeSignature.accept(ArrayTypeSignature.java:42) 
    at sun.reflect.generics.repository.ConstructorRepository.getParameterTypes(ConstructorRepository.java:94) 
    at java.lang.reflect.Method.getGenericParameterTypes(Method.java:300) 
    at java.beans.FeatureDescriptor.getParameterTypes(FeatureDescriptor.java:385) 
    at java.beans.MethodDescriptor.setMethod(MethodDescriptor.java:116) 
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:74) 
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:58) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1196) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:423) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:189) 
    at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:224) 
    at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:149) 
    at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:305) 
    at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorInternal(BeanWrapperImpl.java:335) 
    at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrapperImpl.java:407) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
    ... 19 more 
+1

IMOこれはあなたが答えて受け入れる質問として言い換えられます。 –

+0

意味があります。ありがとう。 –

答えて

2

あり、このiusseに関するかなりの投稿があり、まだそれらのほとんどはそうではありませんでしたクラスパスのどこかにいくつかの春2依存性によって引き起こされるものとしての問題を参照してください。私のために:

Spring 3ではBeanFactoryがパラメタ化され、Spring 2ではパラメタ化されているため、最初のリンクではSpring 2との互換性が示されていません。実際の問題は、MyBatisの別バージョン(3.0.4私の依存関係に)。私はバージョン3.0.4をバージョン3.0.6に変更しました。通常、プロジェクト(または親プロジェクト!)の別のMyBatis依存関係がない場合、Mavenのmybatis-springアーティファクトはMyBatis 3.0.6となります。

サイドノート:変更されたpom.xmlの依存関係がトップレベルのプロジェクトに伝播しないため、私が使用していたMaven依存関係管理システムにいくつかの問題がありました。明らかにmvnのクリーンインストールを実行した後、-Dmaven.text.skip = trueの依存関係がトップレベルプロジェクトに伝播し、すべてが機能していました。

+0

同じ問題がありました。まず別のmybatis依存関係を削除してから、いくつかの2.Xバネ依存関係を削除して解決しました。 – sibidiba

関連する問題