0

grailsスタンドアロン アプリ ランナー プラグイン(v.1.3) を使用して、スタンドアロン grails (v.2.5.0) アプリを構築しようとしています。run-app と run-war を使用すると、すべて正常に動作し、WAR ファイルを tomcat 7 インスタンスに問題なくデプロイすることもできます。ただし、grails build-standalone でスタンドアロン JAR をビルドすると、次の ClassNotFoundException が原因で JAR を起動できません。

2015-08-17 10:52:48,523 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing the application: Error creating bean with name 'searchableMethodFactory': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; 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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchableMethodFactory': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; 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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:188)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:187)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:72)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder.buildClassMappingXml(DefaultSearchableCompassClassMappingXmlBuilder.groovy:65)
    at grails.plugin.searchable.internal.compass.config.mapping.SearchableClassPropertySearchableGrailsDomainClassMappingConfigurator.configureMappings(SearchableClassPropertySearchableGrailsDomainClassMappingConfigurator.java:99)
    at grails.plugin.searchable.internal.compass.config.DefaultGrailsDomainClassMappingSearchableCompassConfigurator.configure(DefaultGrailsDomainClassMappingSearchableCompassConfigurator.java:140)
    at grails.plugin.searchable.internal.compass.config.CompositeSearchableCompassConfigurator.configure(CompositeSearchableCompassConfigurator.java:39)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.buildCompass(SearchableCompassFactoryBean.java:93)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:58)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:41)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    ... 14 more
2015-08-17 10:52:48,528 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing Grails: Error creating bean with name 'searchableMethodFactory': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; 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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchableMethodFactory': Cannot resolve reference to bean 'compass' while setting bean property 'compass'; 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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
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: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: grails/plugin/searchable/internal/compass/mapping/DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:188)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:187)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1.doCall(DefaultSearchableCompassClassMappingXmlBuilder.groovy:72)
    at grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder.buildClassMappingXml(DefaultSearchableCompassClassMappingXmlBuilder.groovy:65)
    at grails.plugin.searchable.internal.compass.config.mapping.SearchableClassPropertySearchableGrailsDomainClassMappingConfigurator.configureMappings(SearchableClassPropertySearchableGrailsDomainClassMappingConfigurator.java:99)
    at grails.plugin.searchable.internal.compass.config.DefaultGrailsDomainClassMappingSearchableCompassConfigurator.configure(DefaultGrailsDomainClassMappingSearchableCompassConfigurator.java:140)
    at grails.plugin.searchable.internal.compass.config.CompositeSearchableCompassConfigurator.configure(CompositeSearchableCompassConfigurator.java:39)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.buildCompass(SearchableCompassFactoryBean.java:93)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:58)
    at grails.plugin.searchable.internal.compass.spring.SearchableCompassFactoryBean.getObject(SearchableCompassFactoryBean.java:41)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: grails.plugin.searchable.internal.compass.mapping.DefaultSearchableCompassClassMappingXmlBuilder$_buildClassMappingXml_closure1$_closure4$_closure12$_closure13
    ... 14 more

この問題が再現可能であることを示すために、github で最小限の例を用意しました。

https://github.com/mlist/grails-standalone-search-bug

https://jira.grails.org/browse/GPSTANDALONE-22でバグ レポートを作成しました 。

デフォルトのTomcat 8からTomcat 7とjettyに切り替えてみました(同じ結果)。Java 7 と Java 8 も試しましたが、どちらも同じ結果でした。

4

1 に答える 1

0

Burt Beckwith が私のバグ レポートに寄せた回答は次のとおりです。

申し訳ありませんが、この問題に時間を費やすことはできません。検索可能なプラグインは使用しないでください。これは Hibernate 3 でのみ機能し、ローカル ファイルベースのインデックスを使用するためスケーリングしません。2009 年に最後に更新された Compass ( http://sourceforge.net/projects/compass/files/compass/ ) に 基づいいます。

于 2015-09-02T13:01:23.767 に答える