Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可搜索的grails插件ClassNotFoundException:org.apache.lucene.analysis.Analyzer$TokenStreamComponents_Grails_Lucene_Compass_Searchable - Fatal编程技术网

可搜索的grails插件ClassNotFoundException:org.apache.lucene.analysis.Analyzer$TokenStreamComponents

可搜索的grails插件ClassNotFoundException:org.apache.lucene.analysis.Analyzer$TokenStreamComponents,grails,lucene,compass,searchable,Grails,Lucene,Compass,Searchable,我在grails 2.4.4中使用可搜索的0.6.9插件,在我的开发机器(Windows/IntelliJ IDEA)上,一切正常。但是,在linux上的Tomcat上部署它会导致以下错误: ... 2014-12-01 10:20:46,066 [localhost-startStop-1] ERROR StackTrace - Full Stack Trace: org.springframework.beans.factory.BeanCreationException

我在grails 2.4.4中使用可搜索的0.6.9插件,在我的开发机器(Windows/IntelliJ IDEA)上,一切正常。但是,在linux上的Tomcat上部署它会导致以下错误:

    ...

    2014-12-01 10:20:46,066 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grails.plugin.searchable.SearchableController': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchableService': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer$TokenStreamComponents
    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)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchableService': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer$TokenStreamComponents
    ... 5 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'compass': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer$TokenStreamComponents
    ... 5 more
Caused by: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer$TokenStreamComponents
    at org.compass.core.lucene.engine.analyzer.CoreAnalyzerBuilderDelegate.buildAnalyzer(CoreAnalyzerBuilderDelegate.java:47)
    at org.compass.core.lucene.engine.analyzer.DefaultLuceneAnalyzerFactory.createAnalyzer(DefaultLuceneAnalyzerFactory.java:81)
    at org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager.buildAnalyzer(LuceneAnalyzerManager.java:225)
    at org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager.buildAnalyzers(LuceneAnalyzerManager.java:133)
    at org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager.<init>(LuceneAnalyzerManager.java:67)
    at org.compass.core.lucene.engine.LuceneSearchEngineFactory.<init>(LuceneSearchEngineFactory.java:119)
    at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:124)
    at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:117)
    at org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:288)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.buildCompass(SearchableCompassFactoryBean.java:95)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:58)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:41)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.Analyzer$TokenStreamComponents
    ... 17 more
。。。
2014-12-01 10:20:46066[localhost-startStop-1]错误堆栈跟踪-完整堆栈跟踪:
org.springframework.beans.factory.BeanCreationException:创建名为“grails.plugin.searchable.SearchableController”的bean时出错:bean初始化失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“searchableService”的bean时出错:bean初始化失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“compass”的bean时出错:FactoryBean在创建对象时引发异常;嵌套的异常是java.lang.NoClassDefFoundError:org/apache/lucene/analysis/Analyzer$TokenStreamComponents
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:744)
原因:org.springframework.beans.factory.BeanCreationException:创建名为“searchableService”的bean时出错:bean初始化失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建名为“compass”的bean时出错:FactoryBean在创建对象时引发异常;嵌套的异常是java.lang.NoClassDefFoundError:org/apache/lucene/analysis/Analyzer$TokenStreamComponents
... 还有5个
原因:org.springframework.beans.factory.BeanCreationException:创建名为“compass”的bean时出错:FactoryBean在创建对象时引发异常;嵌套的异常是java.lang.NoClassDefFoundError:org/apache/lucene/analysis/Analyzer$TokenStreamComponents
... 还有5个
原因:java.lang.NoClassDefFoundError:org/apache/lucene/analysis/Analyzer$TokenStreamComponents
位于org.compass.core.lucene.engine.analyzer.CoreAnalyzerBuilderDelegate.buildAnalyzer(CoreAnalyzerBuilderDelegate.java:47)
位于org.compass.core.lucene.engine.analyzer.DefaultLuceneAnalyzerFactory.createAnalyzer(DefaultLuceneAnalyzerFactory.java:81)
位于org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager.buildAnalyzer(LuceneAnalyzerManager.java:225)
位于org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager.buildAnalyzers(LuceneAnalyzerManager.java:133)
位于org.compass.core.lucene.engine.analyzer.LuceneAnalyzerManager。(LuceneAnalyzerManager.java:67)
位于org.compass.core.lucene.engine.luceneSearchEnfactory.(luceneSearchEnfactory.java:119)
位于org.compass.core.impl.DefaultCompass.(DefaultCompass.java:124)
位于org.compass.core.impl.DefaultCompass.(DefaultCompass.java:117)
位于org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:288)
位于grails.plugin.searchable.internal.compass.spring.searchable CompassFactoryBean.buildCompass(searchable CompassFactoryBean.java:95)
位于grails.plugin.searchable.internal.compass.spring.searchable CompassFactoryBean.getObject(searchable CompassFactoryBean.java:58)
位于grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:41)
... 还有5个
原因:java.lang.ClassNotFoundException:org.apache.lucene.analysis.Analyzer$TokenStreamComponents
... 还有17个
似乎org.apache.lucene.analysis.Analyzer类在lucene 2.4.1中不包含TokenStreamComponents(这是searchable 0.6.9的依赖项)。但正如我所写,它在我的开发机器上运行良好

PS:在Linux上,war文件是由hudson构建的

更新:

在我的开发机器上,它也不会像war一样运行,但运行应用程序会。我不知道为什么它试图使用一个作为war文件运行时不存在的方法


提前感谢您的帮助。

已解决:

不幸的是,解决方案很简单:我也安装了Jasper插件,它将lucene 4.5.1作为依赖项加载。 通过使用

compile (":jasper:1.10.0") {
            excludes 'org.apache.lucene:lucene-core:4.5.1'
            excludes 'org.apache.lucene:lucene-analyzers-common:4.5.1'
            excludes 'org.apache.lucene:lucene-queryparser:4.5.1'
        }
一切正常