3

grails 1.3.7 プロジェクトで検索可能なプラグインを使用しています。私のプロジェクトは、Macbook のハードドライブがいっぱいになり、osx がメモリの問題に関するメッセージを表示し、いくつかのファイル (tmp など) を削除するまで正常に動作していました (その後、いくつかのムービーを削除して 10GB 以上の空き容量を確保しました)。ソースコードは変更していませんが、grails アプリを起動すると、次の例外が発生します。

Running Grails application..
Configuring Spring Security ...
Configuring SpringSocial Facebook
2011-11-18 01:54:16,804 [main] ERROR context.GrailsContextLoader  - Error executing        bootstraps: Failed to retrieve transaction locks; nested exception is java.io.IOException:    Permission denied
org.compass.core.engine.SearchEngineException: Failed to retrieve transaction locks; nested exception is java.io.IOException: Permission denied
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at org.apache.lucene.store.SimpleFSLock.obtain(SimpleFSLockFactory.java:144)
at org.apache.lucene.store.Lock.obtain(Lock.java:73)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$6.doInTransaction(DefaultLuceneSearchEngineIndexManager.java:203)
at org.compass.core.impl.DefaultCompass$CompassTransactionContext.execute(DefaultCompass.java:423)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doOperate(DefaultLuceneSearchEngineIndexManager.java:197)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.doReplaceIndex(DefaultLuceneSearchEngineIndexManager.java:266)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.replaceIndex(DefaultLuceneSearchEngineIndexManager.java:261)
at org.compass.gps.impl.SingleCompassGps.doIndex(SingleCompassGps.java:118)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:154)
at org.compass.gps.impl.AbstractCompassGps.index(AbstractCompassGps.java:128)
at grails.plugin.searchable.internal.compass.CompassGpsUtils.index(CompassGpsUtils.java:49)
at grails.plugin.searchable.internal.compass.CompassGpsUtils$index.call(Unknown Source)
at SearchableGrailsPlugin$_closure3.doCall(SearchableGrailsPlugin.groovy:158)
at org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)
at grails.web.container.EmbeddableServer$start.call(Unknown Source)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy:158)
at _GrailsRun_groovy$_run_closure5_closure12.doCall(_GrailsRun_groovy)
at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:280)
at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy)
at _GrailsRun_groovy$_run_closure5.doCall(_GrailsRun_groovy:149)
at _GrailsRun_groovy$_run_closure5.call(_GrailsRun_groovy)
at _GrailsRun_groovy.runInline(_GrailsRun_groovy:116)
at _GrailsRun_groovy.this$4$runInline(_GrailsRun_groovy)
at _GrailsRun_groovy$_run_closure1.doCall(_GrailsRun_groovy:59)
at RunApp$_run_closure1.doCall(RunApp:33)
at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)
at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)
at gant.Gant.withBuildListeners(Gant.groovy:427)
at gant.Gant.this$2$withBuildListeners(Gant.groovy)
at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)
at gant.Gant.dispatch(Gant.groovy:415)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.executeTargets(Gant.groovy:590)
at gant.Gant.executeTargets(Gant.groovy:589)
Application context shutting down...
Application context shutdown.

ファイルシステムの lucene インデックスに問題があると思いますが、どこで見つけることができますか? lucene インデックス フォルダーまたはファイルはどこに保存されますか? プラグインの設定は変更していません。

4

3 に答える 3

0

デフォルトのconfファイルによると

/**
 * The location of the Compass index
 *
 * Examples: "/home/app/compassindex", "ram://app-index" or null to use the default
 *
 * The default is "${user.home}/.grails/projects/${app.name}/searchable-index/${grails.env}"
 */

あなたがそれを変更していない限り(あなたは変更していないと言います)、私は見てみたいと思います

~/.grails/projects/${app.name}/searchable-index/${grails.env}
于 2011-11-18T10:15:02.790 に答える
0

ある種の Unix/OS X パーミッションの問題のようです。Searchable/Lucene が起動してインデックスを作成しようとすると、最初にインデックス ディレクトリにロック ファイルが作成されます。スタック トレースから、これが失敗しているように見えます。

このSearchable.groovyファイルは、インデックス パスが定義されている場所です。environmentブロックでオーバーライドされている可能性がありConfig.groovyます。

grails run-appユーザーとして Grails を実行しているため、別のユーザーとして実行されている Tomcat とは何の問題もありません。

于 2012-10-01T21:25:58.870 に答える
0

私のTomcatインストールは ${user.home}/.grails/projects/${app.name}/searchable-index にあります.Tomcatプロセスはおそらくあなたとは異なるユーザーで実行されていることを思い出してください. 「見えるように

于 2011-12-19T16:07:58.170 に答える