2015-03-25 6 views
0

Привет всем Я новичок в весне, я только начал его. Я получаю сообщение об ошибкеОшибка создания bean-компонента весной

Ошибка создания компонента с именем «вопрос», заданного в ресурсе пути к классу [org/collection/ApplicationContext2.xml]: 3 аргумента конструктора, но не найден соответствующий конструктор в bean-вопросе (подсказка) : указать индекс/тип аргументов/имя для простых параметров, чтобы избежать неоднозначности типа)»

у меня есть два класса 1-го это вопрос, который содержит один конструктор Вопрос и второй класс Ответ

я пытаюсь создать ссылку класса ответа и вставить в класс вопросов, которые имеют список массивов

Я изучил его и обнаружил, что мне нужно указать тип. я уже указали его, но до сих пор я получаю сообщение об ошибке

Спасибо ..

Question.java

package org.collection; 

import java.awt.List; 
import java.util.ArrayList; 
import java.util.HashSet; 
import java.util.Iterator; 



public class Question { 
    private int id; 
    private String name; 
    private ArrayList<String> answers; 
    //private HashSet<String> answers1; 

    public Question() 
    { 
     //Default constructor 
    } 

    public Question(int id,String name,ArrayList<String> answers) 
    { 
     super(); 
     this.id=id; 
     this.name=name; 
     this.answers=answers; 

    } 

    public void display() 
    { 
     System.out.println("Id :"+id+"\nName :"+name); 
     System.out.println("Answers are"); 
     Iterator<String> itr= answers.iterator(); 
     while(itr.hasNext()) 
     { 
      System.out.println(itr.next()); 
     } 

     /*System.out.println("----------picking up the answers from HashSet---------"); 
     Iterator<String> itr1=answers1.iterator(); 
     while(itr1.hasNext()) 
     { 
      System.out.println(itr1.next()); 
     } 
     System.out.println("-------reached-----------");*/ 



    } 

} 

Answer.java

package org.collection; 

public class Answer { 
    private int id; 
    private String name; 
    private String by; 

    public Answer() { 
     // TODO Auto-generated constructor stub 
    } 

    public Answer(int id,String name,String by) 
    { 
     super(); 
     this.id=id; 
     this.name=name; 
     this.by=by; 

    } 

    public String toString() 
    { 
     return "ID :"+id+"\nName"+name+"\nBy :"+by; 
    } 
} 

ApplicationContext .xml2

<?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:p="http://www.springframework.org/schema/p" 
 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
 
    
 

 
<bean id="ans1" class="org.collection.Answer"> 
 
<constructor-arg value="1" type="int"></constructor-arg> 
 
<constructor-arg value="java is a progamming language hahahaha" type="java.lang.String"></constructor-arg> 
 
<constructor-arg value ="varun" type="java.lang.String"> </constructor-arg> 
 
</bean> 
 
    
 
<bean id ="ans2" class="org.collection.Answer"> 
 
<constructor-arg value="2" type="int"></constructor-arg> 
 
<constructor-arg value="java is a platfornm" type="java.lang.String"></constructor-arg> 
 
<constructor-arg value ="Rahul" type="java.lang.String"></constructor-arg> 
 
</bean> 
 
    
 
<bean id="question" class= "org.collection.Question"> 
 
<constructor-arg value="111" type="int"></constructor-arg> 
 
<constructor-arg value="What is java ?" type="java.lang.String"></constructor-arg> 
 
<constructor-arg> 
 
<list> 
 
<ref bean="ans1"/> 
 
<ref bean="ans2"/> 
 
</list> 
 
    </constructor-arg> 
 
    </bean> 
 
</beans>

+2

Какая ошибка вы получаете? –

+2

В качестве типа «Rahul» и «varun» вам нужно указать полное имя класса (java.lang.String), а не String. –

+0

@KarthikPrasad Ошибка создания bean-компонента с именем «question», заданного в ресурсе пути к классу [org/collection/ApplicationContext2.xml]: 3 аргумента конструктора, но не найден соответствующий конструктор в bean-вопросе (подсказка: укажите аргументы index/type/name для простых параметров, чтобы избежать неоднозначности типа) – Varun

ответ

2

Конструктор три параметра в Question ожидает List от String. Но, вы проходите List из Answer. Измените третий параметр в Question класс на ArrayList<Answer> answers

+1

Great @Mithun ..... это сработало ....... Можете ли вы предложить мне источник, чтобы узнать весну – Varun

+0

Перейти на youtube и искать весну Каушик ....... Я предлагаю всем новичкам пройти это видео (даже для Hibernate), как только вы сделанные, вы можете взять любую книгу из apress, чтобы изучить расширенные концепции, такие как AOP, MVC и т. д. –

Смежные вопросы