web-dev-qa-db-ja.com

org.Apache.solr.common.SolrException:クラスのロード中にエラーが発生しました 'org.Apache.solr.handler.dataimport.DataImportHandler

私はsolrが初めてです。サーバーにApacheTomcat 7.0をインストールし、サーバーにsolr3.6.1をインストールしました。

D:\ドライブにネットワーク担当者が設定したsolr-homeフォルダーがあります。その中のフォルダは、bin、etc、logs、multicore、webappsです。

マルチコアフォルダーには、core0、core1、exampledocs、README.txt、およびsolr.xmlがあります。 webappsフォルダーには、solr.warファイルがあります。

ここで、confフォルダーを含むConfigUserTextUpdateという名前のマルチコアフォルダーにもう1つのコアフォルダーを保持し、Tomcatサービスを再起動すると、localhost/solrに新しいコアが表示されます。

次に、db-config.xmlをConfigUserTextUpdateコアに追加します。以下は内容です:

<dataConfig>
<dataSource
type="JdbcDataSource"
driver="com.Microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://<dbname>\<servername>;databaseName=dbname" user="username"
    password="password"/>
<document>
    <entity name="ConfigUserTextUpdate" query="UserTextUpdate_Index">
    </entity>
</document>
</dataConfig>

ここまではすべて問題なく、3つのコアすべてがlocalhost/solrに表示されています。ここで、コアConfigUserTextUpdateのsolrconfig.xmlに次の行を追加します

  <requestHandler name="/dataimport" class="org.Apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>

そして、以下に示すようにエラーが発生し始めます。

HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you

構成エラーの後でsolrを続行したい場合は、次のように変更します。solr.xmlのfalse ----------------------------------- -------------------------- org.Apache.solr.common.SolrException:クラス 'org.Apache.solr.handler.dataimportのロード中にエラーが発生しました。 DataImportHandler'at org.Apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.Java:394)at org.Apache.solr.core.SolrCore.createInstance(SolrCore.Java:419)at org.Apache.solr.core.SolrCore .createRequestHandler(SolrCore.Java:455)at org.Apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.Java:159)at org.Apache.solr.core.SolrCore。(SolrCore.Java:563)at org.Apache .solr.core.CoreContainer.create(CoreContainer.Java:480)at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java:332)at org.Apache.solr.core.CoreContainer.load(CoreContainer.Java :216)org.Apache.solr.core.CoreContainer $ Initializer.initialize(CoreContainer.Java:161)at org.Apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.Java:96)at org.Apache.cata lina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.Java:277)at org.Apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.Java:258)at org.Apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.Java: 382)org.Apache.catalina.core.ApplicationFilterConfig。(ApplicationFilterConfig.Java:103)at org.Apache.catalina.core.StandardContext.filterStart(StandardContext.Java:4650)atorg.Apache.catalina.core.StandardContext。 startInternal(StandardContext.Java:5306)at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:901)at org.Apache .catalina.core.ContainerBase.addChild(ContainerBase.Java:877)at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:633)at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java :977)org.Apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.Java:1655)atJava.util.conc urrent.Executors $ RunnableAdapter.call(Unknown Source)at Java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)at Java.util.concurrent.FutureTask.run(Unknown Source)at Java.util.concurrent.ThreadPoolExecutor $ Java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)のWorker.runTask(Unknown Source)Java.lang.Thread.run(Unknown Source)原因:Java.lang.ClassNotFoundException:org.Apache.solr。 handler.dataimport.DataImportHandler at Java.net.URLClassLoader $ 1.run(Unknown Source)at Java.security.AccessController.doPrivileged(Native Method)at Java.net.URLClassLoader.findClass(Unknown Source)at Java.lang.ClassLoader.loadClass (不明なソース)Java.net.FactoryURLClassLoader.loadClass(不明なソース)Java.lang.ClassLoader.loadClass(不明なソース)Java.lang.Class.forName0(ネイティブメソッド)Java.lang.Class.forName(不明ソース)org.Apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.Java:378)で... 27詳細

Dataimporthandler.jarファイルをコアフォルダーに配置したり、さまざまなサイトで提供されている他の多くのことを試しましたが、それでも同じエラーが発生します。これらを手伝ってください。

さらに情報が必要な場合はお知らせください。

前もって感謝します。

11
user1909813

solrconfig.xmlを編集し、ライブラリへのパスも追加する必要があります。例:

<lib dir="../../../../dist/" regex="Apache-solr-dataimporthandler-.*\.jar" />

..まだそのディレクトリにある場合。 solrconfigsの例では、すぐ下に配置されていることがわかりました

<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
27
Hyque

実装しようとしているsolr-4.3.0の場合: http://wiki.Apache.org/solr/DIHQuickStart 追加:

<lib dir="../../../contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />

ファイル内:PROJECT-HOME\ solr\collection1\conf\solrconfig.xml

既存の行の下で:

<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />

問題を解決しました。サーブレットコンテナを再起動する必要があるかもしれません(デフォルトの場合:Jetty)。

solr-5.2.バージョンの問題。 solr-5.5.に切り替えると、問題は解決しました。

1
Chintan Patel

同様の問題がありましたが、私の問題はシンボリックリンクにありました(solrはそれらをフォローしていませんでした)。

0
penyaskito