带有grails searchable插件的ApacheLucene索引文件的默认路径在哪里?

带有grails searchable插件的ApacheLucene索引文件的默认路径在哪里?,grails,groovy,lucene,searchable,compass-lucene,Grails,Groovy,Lucene,Searchable,Compass Lucene,我在Grails1.3.7项目中使用了可搜索插件。我的项目一直运行良好,直到我的macbooks硬盘满了,osx抛出一条关于内存问题的消息,它将删除一些文件(tmp等)(之后我删除了一些电影,获得了超过10GB的可用空间)。我没有更改源代码,但现在启动grails应用程序时,出现以下异常: Running Grails application.. Configuring Spring Security ... Configuring SpringSocial Facebook 2011-11-1

我在Grails1.3.7项目中使用了可搜索插件。我的项目一直运行良好,直到我的macbooks硬盘满了,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索引文件夹或文件存储在哪里?我没有更改插件配置。

根据

所以,除非你改变它(你说你没有),否则我会看一看

~/.grails/projects/${app.name}/searchable-index/${grails.env}

由于tomcat安装在${user.home}/.grails/projects/${app.name}/searchable索引中,请记住,tomcat进程可能是在与您不同的用户下运行的,因此我运行了“sudo nautilus”以便能够看到它

,这看起来像是某种Unix/OS X权限问题。当Searchable/Lucene启动并尝试创建索引时,它要做的第一件事就是在索引目录中创建一个锁文件。从堆栈跟踪来看,这似乎是失败的原因

Searchable.groovy
文件是定义索引路径的地方;它可能已在
环境
块中被重写,甚至可能在
Config.groovy
中被重写


grails run app
以您的用户身份运行grails,因此问题与Tomcat以不同的用户身份运行没有任何关系。

我没有更改它,并且我已经查看了该路径,它不存在,在启动我的应用程序时也不会创建它。那么问题出在哪里呢?
~/.grails/projects/${app.name}/searchable-index/${grails.env}