有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我在Spring配置XML文件:org中遇到错误。xml。萨克斯。SAXParseException

我正在使用AOP,我无法修复这个错误。我的Spring配置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"
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>

我得到的错误行在我的控制台中,如下所示

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 "/>".`


共 (2) 个答案

  1. # 1 楼答案

    这是您在上面提供的完整XML文件吗

    如果这是真的,那么您需要在xml文件的末尾添加closingbeans标记,希望这可以解决您的问题

    请更改并回复

  2. # 2 楼答案

    似乎有两个id的aop名称相同:切入点

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

    重命名id并检查plz