2017-11-24 3 views
1

私は春の新機能です。しようとしたときに、私はコンテキストを指定しているときの例外:annotation-config

<bean id="triangle" class="com.spring.sample.Triangle" autowire="byName"/> 

を使用してXML設定からオートワイヤリングを設定することができました。また、私は

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"></bean> 

しかし、私は<context:annotation-config />私を使用してみましたようにBeanを定義しながら、成功した@autowireアノテーションで試してみました次の例外があります。

INFO: Loading XML bean definitions from class path resource [Spring.xml] 
Exception in thread "main" java.lang.IllegalArgumentException 
    at org.springframework.asm.ClassReader.<init>(Unknown Source) 
    at org.springframework.asm.ClassReader.<init>(Unknown Source) 
    at org.springframework.asm.ClassReader.<init>(Unknown Source) 
    at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:52) 
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80) 
    at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:101) 
    at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:76) 
    at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:70) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:253) 
    at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223) 
    at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.spring.sample.MainSpringClass.main(MainSpringClass.java:17) 

私はこの問題をStackOverflowのいくつかの質問で発見しましたが、確かな答えはありません。

​​

春のXML設定は、コンフィギュレーションのコンテキストタグを使用している間、この例外を解決するためにどのように

<?xml version="1.0" encoding="UTF-8"?> 
<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:dwr="http://www.directwebremoting.org/schema/spring-dwr" 
    xmlns:mongo="http://www.springframework.org/schema/data/mongo" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-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/data/mongo 
    http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd 
    http://www.directwebremoting.org/schema/spring-dwr 
    http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"> 
    <bean id="triangle" class="com.spring.sample.Triangle">  
    </bean> 

    <bean id="pointA" class="com.spring.sample.Point"> 
     <property name="x" value="10" /> 
     <property name="y" value="$10" /> 
    </bean> 
    <bean id="pointB" class="com.spring.sample.Point"> 
     <property name="x" value="20" /> 
     <property name="y" value="20" /> 
    </bean> 
    <bean id="pointC" class="com.spring.sample.Point"> 
     <property name="x" value="30" /> 
     <property name="y" value="30" /> 
    </bean> 
    <!-- <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"></bean> --> 
     <context:annotation-config /> 
</beans> 

そして最後に豆トライアングル

public class Triangle { 

    @Autowired 
    private Point pointA; 
    @Autowired 
    private Point pointB; 
    @Autowired 
    private Point pointC; 

    public Point getPointA() { 
     return pointA; 
    } 

    public void setPointA(Point pointA) { 
     this.pointA = pointA; 
    } 

    public Point getPointB() { 
     return pointB; 
    } 

    public void setPointB(Point pointB) { 
     this.pointB = pointB; 
    } 

    public Point getPointC() { 
     return pointC; 
    } 

    public void setPointC(Point pointC) { 
     this.pointC = pointC; 
    } 
} 

のですか?

+0

私も同じ問題があります。 。 。 –

+0

「com.spring.sample.Triangle」はどのように定義しましたか? – SMA

+0

質問が更新されました。どうぞご覧ください。 –

答えて

1

問題が見つかりました。この問題はコードではなく、Spring Frameworkのバージョンにあります。 JDK 1.8はSpringフレームワークと互換性がありません:3.2.0.RELEASE。春のフレームワークをアップグレードすることで問題が解決されました。

関連する問題