java - 配置solr和sql server时出现空指针异常

标签 java solr nullpointerexception

当我尝试从 SQL Server 上的数据库中索引表时,出现此错误:

SEVERE: Exception while processing: APPLICATION document : SolrInputDocument[{}]:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select APP_ID from APPLICATION Processing Document # 1
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:253)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
    at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:238)
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:591)
    at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:267)
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:186)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:359)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:427)
    at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:408)
Caused by: java.lang.NullPointerException
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:241)
    ... 11 more

Jul 27, 2011 3:13:54 PM org.apache.solr.common.SolrException log
SEVERE: Full Import failed:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select APP_ID from APPLICATION Processing Document # 1
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:253)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:210)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
    at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:238)
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:591)
    at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:267)
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:186)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:359)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:427)
    at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:408)
Caused by: java.lang.NullPointerException
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:241)
    ... 11 more

我的 data-config.xml 文件是这样的:

<dataConfig>
  <dataSource type="JdbcDataSource"
          name="ds1"    
          driver="com.mysql.jdbc.Driver"     
              url="jdbc:sqlserver://10.91.95.93;databaseName=RK_GAIP"
              user="guest" 
              password="password"/>
   <document>
        <entity dataSource="ds1" name="APPLICATION" query="select APP_ID from APPLICATION">

            <field column="APP_ID" name="app_id" />

        </entity>
    </document>
</dataConfig>

请告诉我这可能有什么问题 谢谢

最佳答案

您找到解决方案了吗?我也有同样的问题,但找不到解决方案。

LE:

我同时找到了解决方案,使用 this article

我的数据源是这样的:

 <dataSource name="ds-1" type="JdbcDataSource" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost\MSSQLSERVER;databaseName=Test" user="sa" password="password" batchSize="100" convertType="false" autoCommit="true"/>

所以我改变的是我用来连接 MS SQL 服务器的驱动程序。

此外,请注意您需要:

  • 为您正在使用的 SQL 实例启用“允许 TCP/IP 连接”选项

  • 启动 SQL SERVER BROWSER 服务。

希望它也适合您!

关于java - 配置solr和sql server时出现空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842585/

相关文章:

java - 在用java编程时,我得到这个错误,有谁能告诉我到底出了什么问题吗?

java - 终止 Java 程序

java - 允许空指针异常广告克服它的最佳方法

java - 为什么Spring任务调度程序不同时执行任务?

Java 时间过期列表/集?

solr - 按非搜索字段对 Solr 分数进行加权

mongodb - 我可以使用 Solr 而不是 MongoDB 吗?

caching - 提交时防止 solr 缓存刷新

java - 如何处理java.lang.nullpointerException

java - 无法引用内部类中的非最终变量,则出现 null 错误