2016-06-28 4 views
-3
package test; 

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import beans.Test; 

public class Client { 

    public static void main(String args[]) { 

    ApplicationContext ap=new ClassPathXmlApplicationContext("res/spring.xml"); 
    Test t=(Test)ap.getBean("t"); 
    t.printData(); 

    } 
} 

-----------------------------------Как решить исключение bean в весеннем каркасе?

package beans; 

public class Test { 

    private String name; 
    private int age; 

    public Test(String name) { 
    this.name=name; 
    } 

    public Test(int age) { 
    this.age=age; 
    } 

    public void printData() { 
    System.out.println("age="+age); 
    System.out.println("name="+name); 
    } 
} 

--- ---------------------------------

28 июн 2016 4:01:06 вечера org .springframework.context.support.ClassPathXmlApplicationContext prepareRefresh INFO: Обновление org[email protected]138eb89: начало дата начала [Вт июн. 28 16:01:06 IST 2016]; корень контекста иерархии

28 июня 2016 года 4:01:06 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Загрузка определения XML-бобов из пути класса ресурса [Рез/spring.xml]

28 июня 2016 4:01:06 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-инстанцировании одиночек в org.s[email protected]616ca2: определение бобы [т ]; корень заводской иерархии

28 июня 2016 года 4:01:06 PM org.springframework.beans.factory.support.DefaultListableBeanFactory destroySingletons INFO: Уничтожение одиночек в org.s[email protected]616ca2: определяющие бобы [t]; root из фабричной иерархии Исключение в потоке «main» org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем «t», определенным в ресурсе пути к ключу [res/spring.xml]: Не удалось разрешить соответствующий конструктор (подсказка: укажите аргументы индекса/типа/имени для простых параметров, чтобы избежать неоднозначностей типов) **

--------------------------- --------

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" 

"http://www.springframework.org/dtd/spring-beans-2.0.dtd 

(http://www.springframework.org/dtd/spring-beans-2.0.dtd)"> 

<beans> 

    <bean id="t" class="beans.Test"> 

    <constructor-arg value="vikram" type="java.Lang.String" index="0"/> 

    <constructor-arg value="123" type="int" index="1"/> 

    </bean> 

</beans> 
+0

Я все проверил, как jar-файл, синтаксис. –

+1

Исключение говорит вам точно, что не так ... Нет конструктора с двумя параметрами ... У вас есть 2 конструктора, берущих строку или int, у вас нет одного, берущего оба. –

+0

Что вы думаете _ Невозможно разрешить совпадение с конструктором_? –

ответ

1

Ваш Test класс только конструктор без аргументов, в то время как в конфигурационном файле XML, необходимо указать, что Test экземпляры должны быть построены путем вызова конструктора, который принимает в качестве параметров String и int.

Вы можете добавить конструктор в вашем Test классе:

public class Test { 
    private String name; 
    private int age; 
    public Test(String name, int age) { 
     this.name = name; 
     this.age = age; 
    } 
    (...) 
} 

Или изменить файл конфигурации Spring, чтобы ввести значения с помощью сеттеров, не конструктор:

<bean id="t" class="beans.Test">  
    <property name="name" value="vikram"/>  
    <property name="age" value="123"/> 
</bean> 
Смежные вопросы