2009/04/17

Google App EngineでGroovletをクライアント実行するとエラー出るよね?

Grails.jp - GroovyでGoogle App Engine用のアプリを書こうを元にGroovyをAPP ENGINEにアップすると動作する。

けれども、

$ APPENGINE_HOME/bin/dev_appserver.sh deploy

のようにローカル実行すると、Permissionエラーが発生する。

groovy.util.ScriptException: Could not parse scriptName: /executor.groovy
java.lang.RuntimeException: groovy.util.ScriptException: Could not parse scriptName: /executor.groovy
        at groovy.servlet.GroovyServlet$1.call(GroovyServlet.java:123)
        at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:92)
        at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$200(GroovyCategorySupport.java:60)
        at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:202)
        at groovy.servlet.GroovyServlet.service(GroovyServlet.java:128)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:54)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.jav
a:306)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: groovy.util.ScriptException: Could not parse scriptName: /executor.groovy
        at groovy.util.GroovyScriptEngine.updateCacheEntry(GroovyScriptEngine.java:335)
        at groovy.util.GroovyScriptEngine.createScript(GroovyScriptEngine.java:415)
        at groovy.util.GroovyScriptEngine.run(GroovyScriptEngine.java:402)
        at groovy.servlet.GroovyServlet$1.call(GroovyServlet.java:119)
        ... 26 more
Caused by: java.security.AccessControlException: access denied (groovy.security.GroovyCodeSourcePermission /groovy/script)
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:76)
        at groovy.lang.GroovyCodeSource.<init>(GroovyCodeSource.java:79)
        at groovy.lang.GroovyClassLoader$2.run(GroovyClassLoader.java:241)
        at java.security.AccessController.doPrivileged(Native Method)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:239)
        at groovy.util.GroovyScriptEngine.updateCacheEntry(GroovyScriptEngine.java:333)
        ... 29 more

原因わからず。

policyファイル触ったりしないといけないのかな?他の方の環境では問題が起きていないのだろうか?

4 件のコメント:

  1. 私のところでもでてます。known issueのようです。
    http://blog.springsource.com/2009/04/07/write-your-google-app-engine-applications-in-groovy/
    のコメント欄とか
    http://code.google.com/p/googleappengine/issues/detail?id=1219
    とか。
    ちょっと調べましたが現状ちゃんとした解決策はないみたいですね。。

    返信削除
  2. >kskyさん

    ありがとうございます。
    やっぱりほかのかたの環境でもでるのですね。
    調べた内容を掲載までしていただいてありがとうございます。

    当面は我慢ですね。

    返信削除
  3. 私のところでもでていたのですが、
    Libの下のgroovy-all-1.5.7.jarにビルドパスを追加したらうまくいきました
    (Eclipseを使っての話ですが)
    ちなみに、 kskyさんのコメントにある
    http://code.google.com/p/googleappengin/issues/detail?id=1219

    のcomment11を参考にしました。

    kskyさん、ありがとうございます〜

    返信削除
  4. >TAIJIさん
    ありがとうございます。
    kskyさん、ご自分で解決されたのですね。

    返信削除