dataimport java_解决Solr配置数据导入模块功能dataimport报DataImportHandlerException异常...

一、问题描述

最近计划将本站索引功能更换为基于Solr的搜索,想通过其配置DataImport功能将数据异步导入转换生成lucene索引文件,再通过Solr的搜索接口进行搜索,打开界面Entity框里面没有找到配置的subject实体,如下图所示,另“如何配置DataImport功能”参考更多其他页面

c84c19edf58c4132cb18bbc4b312d739.png

点击Configuration右边的Reload按钮,如下图

6e08a96d5c467726cd474530d85af359.png

后台报出"ERROR org.apache.solr.core.SolrCore  – org.apache.solr.handler.dataimport.DataImportHandlerException"异常,具体如下所示157212 [http-9998-5] INFO  org.apache.solr.handler.dataimport.DataImporter  – Loading DIH Configuration: mysql-dsmconfig.xml@b@157216 [http-9998-5] ERROR org.apache.solr.core.SolrCore  – org.apache.solr.handler.dataimport.DataImportHandlerException: Data Config problem: The reference to entity "characterEncoding" must end with the ';' delimiter.@b@at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:215)@b@at org.apache.solr.handler.dataimport.DataImporter.maybeReloadConfiguration(DataImporter.java:130)@b@at org.apache.solr.handler.dataimport.DataImportHandler.handleRequestBody(DataImportHandler.java:197)@b@at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)@b@at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)@b@at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659)@b@at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362)@b@at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)@b@at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)@b@at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)@b@at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)@b@at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)@b@at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)@b@at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)@b@at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)@b@at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)@b@at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)@b@at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)@b@at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)@b@at java.lang.Thread.run(Thread.java:745)@b@Caused by: org.xml.sax.SAXParseException; systemId: solrres:/mysql-dsmconfig.xml; lineNumber: 3; columnNumber: 128; The reference to entity "characterEncoding" must end with the ';' delimiter.@b@at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)@b@at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)@b@at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)@b@at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)@b@at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)@b@at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)@b@at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)@b@at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)@b@at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)@b@at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)@b@at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)@b@at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)@b@at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)@b@at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)@b@at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)@b@at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:206)@b@... 19 more@b@@b@157217 [http-9998-5] INFO  org.apache.solr.core.SolrCore  – [subject] webapp=/xwood-solr path=/dataimport params={command=reload-config&_=1469524614856} status=500 QTime=6 @b@157217 [http-9998-5] ERROR org.apache.solr.servlet.SolrDispatchFilter  – null:org.apache.solr.handler.dataimport.DataImportHandlerException: Data Config problem: The reference to entity "characterEncoding" must end with the ';' delimiter.@b@at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:215)@b@at org.apache.solr.handler.dataimport.DataImporter.maybeReloadConfiguration(DataImporter.java:130)@b@at org.apache.solr.handler.dataimport.DataImportHandler.handleRequestBody(DataImportHandler.java:197)@b@at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)@b@at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)@b@at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659)@b@at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362)@b@at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)@b@at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)@b@at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)@b@at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)@b@at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)@b@at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)@b@at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)@b@at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)@b@at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)@b@at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)@b@at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)@b@at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)@b@at java.lang.Thread.run(Thread.java:745)@b@Caused by: org.xml.sax.SAXParseException; systemId: solrres:/mysql-dsmconfig.xml; lineNumber: 3; columnNumber: 128; The reference to entity "characterEncoding" must end with the ';' delimiter.@b@at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)@b@at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)@b@at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)@b@at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)@b@at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)@b@at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)@b@at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)@b@at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)@b@at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)@b@at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)@b@at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)@b@at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)@b@at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)@b@at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)@b@at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)@b@at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:206)

二、解决步骤

1. 根据日志异常定位是配置文件mysql-dsmconfig.xml引起的,错误关键词"characterEncoding",原来内容是如下<?xml  version="1.0" encoding="UTF-8" ?>@b@@b@    @b@    @b@        @b@                @b@                @b@        @b@    @b@

去除"?useUnicode=true&characterEncoding=utf-8",具体修改如下<?xml  version="1.0" encoding="UTF-8" ?>@b@@b@    @b@    @b@        @b@                @b@                @b@        @b@    @b@

2. 点击Reload按钮,重新刷新加载该mysql-dsmconfig.xml文件,问题解决了,如下图所示

da7e9292859a6f474d015d9979ba96a0.png

37dc7258097519a66112c44e2b679c6b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值