【问题标题】:Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException线程“主”org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException 中的异常
【发布时间】:2016-11-12 02:06:03
【问题描述】:

最近在学习 Spring 框架。所以我正在尝试检查依赖注入在 spring 框架中是如何工作的。结果,我创建了一个新的 java 项目并使用基于构造函数 XML 的配置来练习依赖注入代码。运行我的项目后,我收到此错误....

来自类路径资源 [com/mir00r/beans.xml] 的 XML 文档中的第 24 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:24;列号:9; cvc-complex-type.2.3:元素 'beans' 不能有字符 [children],因为该类型的内容类型是仅元素。

2016 年 7 月 9 日晚上 11:22:11 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息:刷新 org.springframework.context.support.ClassPathXmlApplicationContext@7ee361ad:启动日期 [Sat Jul 09 23:22:11 BDT 2016];上下文层次的根 2016 年 7 月 9 日晚上 11:22:11 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息:从类路径资源 [com/mir00r/beans.xml] 加载 XML bean 定义 线程“主”org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException 中的异常:来自类路径资源 [com/mir00r/beans.xml] 的 XML 文档中的第 24 行无效;嵌套异常是 org.xml.sax.SAXParseException;行号:24;列号:9; cvc-complex-type.2.3:元素 'beans' 不能有字符 [children],因为该类型的内容类型是仅元素。

在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 在 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 在 org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83) 在 com.mir00r.Main_Test.main(Main_Test.java:18)

原因:org.xml.sax.SAXParseException;行号:24;列号:9; cvc-complex-type.2.3:元素 'beans' 不能有字符 [children],因为该类型的内容类型是仅元素。 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidComplexType(XMLSchemaValidator.java:3200) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.elementLocallyValidType(XMLSchemaValidator.java:3160) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processElementContent(XMLSchemaValidator.java:3062) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleEndElement(XMLSchemaValidator.java:2140) 在 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:859) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 在 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 在 com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243) 在 com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347) 在 org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) ... 14 更多 C:\Users\razza_000\AppData\Local\NetBeans\Cache\8.1\executor-sn-ps\run.xml:53:Java 返回:1 构建失败(总时间:28 秒)

这是我的代码.......

Employee.java 文件

 package com.mir00r;

 /**
  * 
  * @author Abdur Razzak <abdur.razzaq06@ail.com>
  */
 public class Employee {
     private int id;
     private String name;
     private Address address; // create object from Address class

     public Employee() {
     }

     public Employee(int id) {
         this.id = id;
     }

     public Employee(String name) {
         this.name = name;
     }

    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public Employee(int id, String name, Address address) {
        this.id = id;
        this.name = name;
        this.address = address;
    }

    public void show () {
        System.out.println(id + " : " + name);
        System.out.println(address);
    }
 }

Address.java 文件

   package com.mir00r;

  /**
  * 
  * @author Abdur Razzak <abdur.razzaq06@ail.com>
  */
 public class Address {
     private final String state;
     private final String city;
     private final String country;

     public Address(String state, String city, String country) {
         this.state = state;
         this.city = city;
         this.country = country;
     }

     @Override
     public String toString() {
         return "Address{" + "state=" + state + ", city=" + city + ",  country=" + country + '}';
     }
 }

Main_Test.java 文件

     package com.mir00r;

     import org.springframework.context.ApplicationContext;
     import org.springframework.context.support.ClassPathXmlApplicationContext;

     /**
      * 
      * @author Abdur Razzak <abdur.razzaq06@ail.com>
      */
      public class Main_Test {
          public static void main(String[] args) {
               ApplicationContext ac = new ClassPathXmlApplicationContext("com/mir00r/beans.xml");
               Employee em = (Employee)ac.getBean("emp");
               em.show();
          }
      }

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

     <bean id="a1" class="com.mir00r.Address">
         <constructor-arg value="Badda"></constructor-arg>
         <constructor-arg value="Dhaka"></constructor-arg>
         <constructor-arg value="Bangladesh"></constructor-arg>
     </bean>

     // Dependency Injection Example using Constructor
     <bean id="emp" class="com.mir00r.Employee">
         <constructor-arg value="10" type="int" ></constructor-arg>
         <constructor-arg value="Abdur Razzak" ></constructor-arg>
         <constructor-arg>
             <ref bean="a1"></ref>
         </constructor-arg>
     </bean>
 </beans>  

这是我的项目结构照片

我现在能做什么.....????

这是我的错误图片

【问题讨论】:

  • 你的异常 SAXParseException 告诉你,你的 xml 文件有问题。我看到有人在这里回答并关注它兄弟。

标签: java xml spring spring-mvc


【解决方案1】:

A - 解释

bean 文件中的注释行无效。您使用了错误的评论标签,而不是使用“&lt;!-- --&gt;”,而是使用“//”,这会导致解析错误 (org.xml.sax.SAXParseException)。

是xml文件,下面的注释行无效;

// Dependency Injection Example using Constructor

以下注释行有效;

<!-- Do the comments here, that's all -->

B - 解决方案

使用下面提供的bean.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:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="a1" class="com.mir00r.Address">
        <constructor-arg value="Badda"/>
        <constructor-arg value="Dhaka"/>
        <constructor-arg value="Bangladesh"/>
    </bean>

    <!-- // Dependency Injection Example using Constructor -->
    <bean id="emp" class="com.mir00r.Employee">
        <constructor-arg value="10" type="int" />
        <constructor-arg value="Abdur Razzak" />
        <constructor-arg>
            <ref bean="a1"/>
        </constructor-arg>
    </bean>
</beans>

【讨论】:

    【解决方案2】:

    在编译我的 spring 应用程序时遇到了相同的异常 org.xml.sax.SAXParseException,我发现是一个 Comment 元素,我在取消注释我的代码后忘记删除它的“-->”部分.因此,我注意到了这一点,在删除它之后,我能够执行我的应用程序。

    【讨论】:

      【解决方案3】:

      我认为应用程序上下文声明中的main.test 中的文件名应该是com.mir00r/beans.xml 而不是com/mir00r/beans.xml

      【讨论】:

        【解决方案4】:

        在 cmets 中,部分不能使用 --改为使用

        【讨论】:

          猜你喜欢
          • 2016-07-22
          • 2013-02-17
          • 2013-12-20
          • 1970-01-01
          • 2014-03-31
          • 2013-05-06
          • 2017-11-12
          • 2015-01-17
          • 2011-04-13
          相关资源
          最近更新 更多