1
votes
<bean name="readerService" class="com.mayank.example1.ReaderService"/>
   <property name="reader" ref="fileReader" />
</bean>
<bean name="fileReader" class="com.mayank.example1.FileReader">
   <constructor-arg value="resources/myfile.txt" />
</bean>

Reder service take reader as argument in its constructor Reader is Interface. FileReader is class that implement Reader

In spring It is not taking property reader and throwing exception:

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 15 in XML document from class path resource [reader-beans.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'property'. One of '{"http://www.springframework.org/schema/beans":import, "http://www.springframework.org/schema/beans":alias, "http://www.springframework.org/schema/beans":bean, WC[##other:"http://www.springframework.org/schema/beans"]}' is expected

2
can you post the whole xml?ThanksForAllTheFish
<bean name="readerService" class="com.mayank.example1.ReaderService"/> <-- you are closing the bean tag too early?esaj

2 Answers

2
votes

Make sure you have the required xml namespaces bean and context provided at the top of your configuration file. My example uses version 3.1 of Spring you may need to adjust for the version of Spring you are using.

Also notice the adjustment to the readerService bean tag which was being closed too early.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

<bean name="readerService" class="com.mayank.example1.ReaderService">
   <property name="reader" ref="fileReader" />
</bean>
<bean name="fileReader" class="com.mayank.example1.FileReader">
   <constructor-arg value="resources/myfile.txt" />
</bean>

</beans>
4
votes

It looks like you are closing the bean tag too early (note the /> at the end, shouldn't this be just >?):

<bean name="readerService" class="com.mayank.example1.ReaderService"/>
   <property name="reader" ref="fileReader" />
</bean>