在下面的代码中,我的NullPointer
的{{1}}行有一个private File ratesFile = new File(ratesFilePath);
。
据我所知,我的属性文件很好,我正在将其很好地导入到myClass.java
配置中,并将该属性传递给我的类OK。我的getter和setter方法在我看来也可以。关于为什么我的属性没有传递给班级的任何指示?
Spring Batch 2.1.8
myClass.properties:
.xml
myClass.xml:
rates_file_path=/opt/rates
rates_file=rates.txt
myClass.java
<bean id="myClassProps" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:conf/myClass.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
<bean id="myClass" class="com.stuff.blah.myClass">
<property name="ratesFilePath" value="${rates_file_path}/${rates_file}" />
</bean>
答案 0 :(得分:1)
在您的myClass
中,
private File ratesFile = new File(ratesFilePath);
是引发错误的代码。
ratesFilePath
和ratesFile
都在调用构造函数时被初始化。
由于ratesFilePath
没有任何初始化值,因此将其设置为null
。
当尝试初始化ratesFile
时,它将使用ratesFilePath
的{{1}}并引发null
。
要解决此问题,请先将NullPointerException
设置为ratesFile
;
null
在确保路径不是private File ratesFile = null;
之后,在ratesFile
的setter方法上设置ratesfilePath
。
null