この奇妙な問題に遭遇しました。
私の dataconfig ファイルには、ルート エンティティと 15 の他のサブエンティティがあります。フルインポートしようとすると、以下のエラーが発生します。
エラーログ:
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select fruitName from fruits where id = '2' Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:252)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:209)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:38)
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:243)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:472)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:498)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:411)
... 5 more
Caused by: java.lang.ClassNotFoundException: Unable to load null or org.apache.solr.handler.dataimport.null
at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:899)
at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:159)
at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:127)
at org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcDataSource.java:362)
at org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcDataSource.java:38)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:239)
... 13 more
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:385)
at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:889)
... 18 more
データベースに対してエラー ログでクエリを実行しても、エラーは見つかりません。エンティティの順序を入れ替えてみました。エラー ログで毎回、最後のエンティティのクエリを見つけます。
しかし、ランダムなエンティティを削除すると、完全インポートは成功します。
これは、サブエンティティ/フィールドの数に課せられた何らかの制限によるものですか? クラス「null」をロードしようとしているのはなぜですか? 何か不足していますか?
どんな助けでも大歓迎です!
編集:
私のdataconfig.xmlのレイアウト:
<dataconfig>
<document>
<entity name = "outer_entity" query="select id from outerTable">
<entity name = "subEntity1" query="select value1 from subEntity1">
</entity>
<entity name = "subEntity2" query="select value2 from subEntity2">
</entity>
..........
<entity name = "subEntity14" query="select value14 from subEntity14">
</entity>
<entity name = "subEntity15" query="select value15 from subEntity15">
</entity>
</entity>
</document>
</dataconfig>