为 jdbc 数据直接 sqlserver 驱动程序覆盖 org.apache.solr.handler.dataimport.JdbcDataSource

Override org.apache.solr.handler.dataimport.JdbcDataSource for jdbc data direct sqlserver driver

我需要覆盖 JdbcDataSource class getConnection() 方法来解锁 Data direct 驱动程序。

当 solr 正在执行 solr 核心中 solr-data-config.xml 中存在的 sql 查询时,它无法执行 sql 查询。 它失败并出现错误“此驱动程序已锁定用于嵌入式应用程序”。

我可以通过扩展 JdbcDataSource class 覆盖 getConnection() 方法并解锁驱动程序。 但是 solr 没有获取我的扩展 class。如何使用扩展的 JdbcDataSource 配置 solr。

我认为最简单的方法是创建一个新的 class 来扩展旧的,覆盖 getConnection() 调用,将 class 包含在 .jar 文件中,添加将 .jar 文件添加到 Solr 加载的库中,然后在数据源定义中使用新名称 - dataSource type="NewAndImprovedJdbcDataSource"

您必须将 .jar 文件添加到 lib elements in solrconfig.xml

<lib dir="../../../<path>/" regex="my-library\.jar" />

然后您在 data-config.xml 文件中引用数据源:

<dataSource name="<name>" type="YourCustomClass" />