2013-09-03 1 views
1

Я пытаюсь узнать весеннюю партию для написания пакетных заданий в java. Поэтому я использую это tutorial.Как разрешить ошибку весны?

Теперь проблема в том, что после того, как я использовал все банки, я начал выполнять проект. Это оставило меня с хитрым ошибкой:

INFO: Destroying singletons in org.s[email protected]1e7b1e7b: defining beans [jobLauncher,jobRepository,transactionManager,wordsFWTasklet,numbersFWTasklet,taskletStep,fileWritingJob]; root of factory hierarchy 
Sep 3, 2013 8:09:29 AM org.springframework.batch.core.launch.support.CommandLineJobRunner start 

SEVERE: Job Terminated in error: Error creating bean with name 'fileWritingJob' defined in class path resource [fileWritingJob.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException 
Throwable occurred: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileWritingJob' defined in class path resource [fileWritingJob.xml]: Initialization of bean failed; nested exception is java.lang.NullPointerException 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:478) 

Caused by: java.lang.NullPointerException 
at org.springframework.core.GenericTypeResolver.getTypeVariableMap(GenericTypeResolver.java:144) 
at org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:93) 

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

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

    <import resource="applicationContext.xml"/> 

    <bean id="wordsFWTasklet" class="FileCreatorTasklet"> 
     <property name="filePath" value="C:\\temp\\words.txt"/> 
     <property name="content" value="abcdefghijklmnopqrstuwxyz"/> 
    </bean> 

    <bean id="numbersFWTasklet" class="FileCreatorTasklet"> 
     <property name="filePath" value="C:\\temp\\numbers.txt"/> 
     <property name="content" value=""/> 
    </bean> 

    <bean id="taskletStep" abstract="true" 
     class="org.springframework.batch.core.step.tasklet.TaskletStep"> 
     <property name="jobRepository" ref="jobRepository"/> 
    </bean> 

    <bean id="fileWritingJob" class="org.springframework.batch.core.job.SimpleJob"> 
     <property name="name" value="fileWritingJob" /> 
     <property name="steps"> 
      <list> 
       <bean parent="taskletStep"> 
        <property name="tasklet" ref="wordsFWTasklet"/> 
        <property name="transactionManager" ref="transactionManager"/> 
       </bean> 
       <bean parent="taskletStep"> 
        <property name="tasklet" ref="numbersFWTasklet"/> 
        <property name="transactionManager" ref="transactionManager"/> 
       </bean> 
      </list> 
     </property> 
     <property name="jobRepository" ref="jobRepository"/> 
    </bean> 

</beans> 

EDIT:

ApplicationContext.xm л:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

    <bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
     <property name="jobRepository" ref="jobRepository"/> 
    </bean> 

    <bean id="jobRepository" class="org.springframework.batch.core.repository.support.SimpleJobRepository"> 
     <constructor-arg> 
      <bean class="org.springframework.batch.core.repository.dao.MapJobInstanceDao"/> 
     </constructor-arg> 
     <constructor-arg> 
      <bean class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" /> 
     </constructor-arg> 
     <constructor-arg> 
      <bean class="org.springframework.batch.core.repository.dao.MapStepExecutionDao"/> 
     </constructor-arg> 
     <constructor-arg> 
      <bean class="org.springframework.batch.core.repository.dao.MapExecutionContextDao"/> 
     </constructor-arg> 
    </bean> 

    <bean id="transactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager"/> 

</beans> 

Может ли одно сказать мне, что я делаю неправильно здесь?

+0

Можете ли вы проверить, были ли у вас определенные beans с именем 'transactionManager' в вашем проекте – Ashish

+0

@Ashish Да, я вижу, пожалуйста, обновленный поток кода выше. –

+0

Я предполагаю, что ваш класс 'FileCreatorTasklet' включен в пакет по умолчанию, а не под любой другой пакет? – Ashish

ответ

1

Какая версия весенней партии вы используете? С 2.2.1.RELEASE3.2.3.RELEASE от Весна каркас) этот пример работает отлично! библиотеки (из мавена) являются:

org.springframework

  • весна-жильный
  • весна-бобы
  • весна-контекст
  • весна-партия-ядро
  • весна-партия-инфраструктура
+0

Я использую эти банки: 'commons-logging-1.1.3.jar, spring-2.5.4.jar, spring-batch-core-2.2.1.RELEASE.jar, spring-batch-infrastructure-2.2.1. RELEASE.jar, spring-batch-test-2.2.1.RELEASE.jar'. Итак, я включил все версии версии 2.2.1. –

+0

Пробовал с вашей конфигурацией, и все работает нормально. Попробуйте обновить до весны 3.2.3.RELEASE –

+0

Спасибо, я попробую это и посмотрю, будет ли это работать для меня. –