2013-08-03 3 views
2

Я пытаюсь найти программу, которая загружает несколько конфигурационных .xml-файлов в Spring Framework.Spring Framework: загрузка нескольких конфигурационных файлов .xml

Это ошибка я столкнулся:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JDBCTemplateFileLog' defined in class path resource [BeansFileLog.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: 
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'dataSource' threw exception; nested exception is java.lang.IllegalArgumentException: Property 'dataSource' is required 

Это мои XML файлы:

  1. Бобы-All-Modules.xml

    <import resource="BeansJDBC.xml" /> <import resource="BeansFileLog.xml" /> <import resource="BeansCFAE.xml" />

  2. BeansJDBC .xml

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/TEST"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean>

  3. BeansFileLog.xml

    '<bean id="JDBCTemplateFileLog" class="in.customfileaccessevent.JDBCTemplateFileLog"> 
         <property name="dataSource" ref="dataSource" /> 
        </bean>` 
    
  4. BeansCFAE.xml

    <bean id="customFileAccessEvent" class="in.customfileaccessevent.CustomFileAccessEvent"> <constructor-arg index="0" type="java.lang.String"> <value>E:/HelloWorld.doc</value> </constructor-arg> </bean>

    `<bean id="customEventHandler" class="in.customfileaccessevent.CustomFileAccessEventHandler" /> 
    
    <bean id="customFileAccessEventPublisher" class="in.customfileaccessevent.CustomFileAccessEventPublisher" />` 
    

Я добавил внешний файл банку «MysqlConnecterJ .. .jar "в программу. Тем не менее, я не могу понять, в чем проблема?

Программа MainApp.java выглядит следующим образом:

`MainAppAllModules общественного класса {

public static void main(String args[]){ 
    ConfigurableApplicationContext context = 
      new ClassPathXmlApplicationContext("Beans-All-Module.xml"); 
    //ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"BeansCFAE.xml", "BeansJDBC.xml"}); 

      CustomFileAccessEvent ce = (CustomFileAccessEvent) context.getBean("customFileAccessEvent"); 
    CustomFileAccessEventPublisher cvp = 
      (CustomFileAccessEventPublisher) context.getBean("customFileAccessEventPublisher"); 
    cvp.publish(ce); 
    /*ConfigurableApplicationContext context1 = 
      new ClassPathXmlApplicationContext("BeansJDBC.xml");*/ 
    JDBCTemplateFileLog flogJDBCTemplate = (JDBCTemplateFileLog) context.getBean("JDBCTemplateFileLog"); 
    System.out.println("File Log Creation"); 
    flogJDBCTemplate.create("Sample", "Sample"); 



} 

}`

ответ

1

Вам нужно сделать DATASOURCE боб для "DataSource" в качестве ссылки. Ваши XML-файлы импортируются в порядке. Попробуйте this tutorial, чтобы сделать это.

+0

Спасибо за быстрый ответ. Я прошел через учебник, на который вы меня сослали. Я попытался объединить два кода в моей программе; один - это событие пользовательского доступа к файлу, а второе - пример Spring jdbc. Я следовал инструкциям из учебника, не могу отлаживать его. –

+0

После реализации части источника данных вы получаете сообщение об ошибке при попытке запустить программу? – CorayThan

+0

Я все переписал с нуля. Кажется, он сделал трюк. Я попытался скопировать одни и те же программные файлы на другой пакет, после некоторых изменений он сработал. Мне показалось странным, не могли бы вы подробнее рассказать об этой проблеме? Я также узнал, что ' 'было 2.5.xsd в моем XML-файле , Я работаю с Spring 4.0 –

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