2014-06-25 21 views
1

我想用eclipse和tomcat調試solr4.6源代碼。我收到錯誤消息: HTTP Status 500 - {msg = SolrCore'collection1'由於初始化失敗而不可用:[schema.xml]的插件初始化失敗fieldType「text_ws」:[schema.xml]的插件初始化失敗分析器/分詞器調試solr 4.6源碼。獲取ClassNotFoundException:java.lang.ClassNotFoundException:solr.WhitespaceTokenizerFactory

我試着調試它,發現SolrResourceLoader的類名爲 name = base +'。' + subpackage + newName; 在solr.WhitespaceTokenizerFactory的情況下,base是org.apache.solr,而子包名稱是'',newName是WhitespaceTokenizerFactory。

所以對於名FN的Class.forName(姓名,真實的,類加載器)的值爲org.apache.solr.WhitespaceTokenizerFactory

然而WhitespaceTokenizerFactory在solr的源包是:org.apache.lucene.analysis 。核心;

堆棧跟蹤:

5200 T22 oasc.SolrException.log ERROR null:org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: Plugin init failure for [schema.xml] fieldType "text_ws": Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.WhitespaceTokenizerFactory'. Schema file is /usr/share/solr2/example/solr/collection1/schema.xml 
     at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:823) 
     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:301) 
     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:201) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:744) 
    Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text_ws": Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.WhitespaceTokenizerFactory'. Schema file is /usr/share/solr2/example/solr/collection1/schema.xml 
     at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:608) 
     at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:166) 
     at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55) 
     at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69) 
     at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:559) 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:597) 
     at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:251) 
     at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:1) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     ... 1 more 
    Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text_ws": Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.WhitespaceTokenizerFactory' 
     at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177) 
     at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:468) 
     ... 13 more 
    Caused by: org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] analyzer/tokenizer: Error loading class 'solr.WhitespaceTokenizerFactory' 
     at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:177) 
     at org.apache.solr.schema.FieldTypePluginLoader.readAnalyzer(FieldTypePluginLoader.java:362) 
     at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:95) 
     at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:1) 
     at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151) 
     ... 14 more 
    Caused by: org.apache.solr.common.SolrException: Error loading class 'solr.WhitespaceTokenizerFactory' 
     at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:470) 
     at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:573) 
     at org.apache.solr.schema.FieldTypePluginLoader$2.create(FieldTypePluginLoader.java:342) 
     at org.apache.solr.schema.FieldTypePluginLoader$2.create(FieldTypePluginLoader.java:1) 
     at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:151) 
     ... 18 more 
    Caused by: java.lang.ClassNotFoundException: solr.WhitespaceTokenizerFactory 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:270) 
     at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:454) 
     ... 22 more 
+0

你有沒有'的Lucene分析儀,共4.6.1.jar'在Eclipse的classpath? –

+0

不,我試圖從源碼運行sorl,所以沒有包含任何solr/lucene jar。但問題已解決。查看Ajay的答案。 – artemis

回答

1

建立與Eclipse和Tomcat的Solr源代碼後面臨着類似的問題。 我已經指出eclipse編譯輸出目錄爲webcontent/WEB-INF/classes。要允許tomcat使用相同的webcontent目錄而不是tomcat發佈到wtp文件夾,請在tomcat的「服務器選項」中啓用「不發佈服務模塊」。這將有助於類加載程序在正確的位置找到solr「服務」。目前正在使用的類加載器無法找到相同的結果。