简体   繁体   中英

I am getting error in Spring Configuration XML file:org.xml.sax.SAXParseException

I am using AOP and I am stuck with this error I can't fix. My Spring Configuration XML file is:

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


    <bean id="adv1" class="com.aamir.Advice1"/>
    <bean id="adv2" class="com.aamir.Advice2"/>
    <bean id="p1" class="com.aamir.Person"/>
    <bean id="e1" class="com.aamir.Employee"/>

    <aop:config>

        <aop:aspect id="asp1" ref="adv1">
        <aop:pointcut id="pc1" expression="execution(public int com.aamir.Person.*(int, ..))"/>
        <aop:before method="executeBeforeMethod" pointcut-ref="pc1"/>
        </aop:aspect>

        <aop:aspect id="asp2" ref="adv2">
            <aop:pointcut id="pc1" expression="execution(* com.aamir.*.*(..))"/>
            <aop:pointcut id="pc2" expression="execution(public * com.aamir.Employee.*(..))"/>
            <aop:before method="method1" pointcut-ref="pc1"/>
            <aop:after method="method2" pointcut-ref="pc1"/>
            <aop:after-returning method="method3" returning="obj" pointcut-ref="pc1"/>
            <aop:after-throwing method="method4" throwing="e" pointcut-ref="pc1"/>
            <aop:before method="method1" pointcut-ref="pc2"/>
        </aop:aspect>

    </aop:config>


</beans>

The Line I am getting error is in my console as shown below.

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 21 in XML document from class path resource [beans.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 21; columnNumber: 9; Element type "aop:aspect" must be followed by either attribute specifications, ">" or "/>".`

It seems there are two id's with same name for aop:pointcut.

<aop:pointcut id="pc1" expression="execution(public int com.aamir.Person.*(int, ..))"/>

<aop:pointcut id="pc1" expression="execution(* com.aamir.*.*(..))"/>

rename id and check plz.

Is this the complete XML file that you have provided above ?

In case this is true, then you need to add closing beans tag in the end of xml file and hopefully that should take care of your problem.

Please make the change and reply back.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM