我正在尝试构建一个使用grails中的acegi和multitenant-plugin的应用程序。我按照本教程中的说明进行操作:
http://ridingthetiger.wikia.com/wiki/Creating_a_Secure,_Multi-Tenant_Web_App_with_Grails
然而,当我接到这个指示时:
grails create-auth-domains org.racetrack.User org.racetrack.Role Requestmap
我收到此错误:
Running script C:\Users\roise\.grails\1.3.7\projects\racetrack\plugins\acegi-0.5.2\scripts\CreateAuthDomains.groovy
Error executing script CreateAuthDomains: null\scripts\Init.groovy (The system cannot find the path specified)
java.io.FileNotFoundException: null\scripts\Init.groovy (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at gant.Gant$_closure1.doCall(Gant.groovy:128)
at gant.Gant$_closure1.call(Gant.groovy)
at _SecurityTargets_groovy.run(_SecurityTargets_groovy:25)
at _SecurityTargets_groovy$run.call(Unknown Source)
at CreateAuthDomains.run(CreateAuthDomains:23)
at CreateAuthDomains$run.call(Unknown Source)
at gant.Gant.prepareTargets(Gant.groovy:606)
Error executing script CreateAuthDomains: null\scripts\Init.groovy (The system cannot find the path specified)
我试过按照教程到最后一个逗号。唯一不同的是,我在STS中开发,我无法从命令行运行create-app命令,实际上我必须从New菜单创建一个新的应用程序。到目前为止我已经完成了其他三个命令 - 我已经输入并执行完全如图所示。
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为@arcdegree是正确的,问题是因为脚本无法弄清楚GRAILS_HOME是什么,但在我的情况下,环境变量设置正确并且我仍然遇到问题。
我发现解决我的问题并且我相信将解决您的问题是您尝试运行的命令(create-auth-domains)正在访问需要更新的acegi插件中的脚本(CreateAuthDomains.groovy)。现在,这个问题已经很老了,没有可接受的答案,所以我不确定你是否仍然遇到这个问题,但我认为这个答案会帮助其他人解决类似的问题。我的工作源于尝试使用旧插件进行jsecurity,而这个插件已被更新的插件所取代,但我打算使用与我所指的文档相同的东西。
在这种情况下,您的脚本CreateAuthDomains可能使用对grailsHome和includeTargets的旧引用,该引用应替换为调用grailsScript(“Init”)的单行。所以,请注释掉这些内容:
grailsHome = Ant.project.properties."environment.GRAILS_HOME"
includeTargets << new File ("${grailsHome}/scripts/Init.groovy")
然后添加这一行
includeTargets << grailsScript("Init")
保存文件并再次尝试命令。