Hi Luciano,

It seems to me that the problem arises when the Tuscany runtime is loading
the contribution file. You can find more logging at [0]. As you can see
there are two things logged with info level before the error:

   1. I 08-19 11:19AM 41.228
   2. org.apache.tuscany.sca.node.impl.NodeImpl start: Starting node:
   1.344198860972114123 domain: default
   3. I 08-19 11:19AM 41.229
   4. org.apache.tuscany.sca.node.impl.NodeFactoryImpl loadContributions:
   Loading contribution:
   file:/base/data/home/apps/tuscany-comet/1.344198860972114123/

The same file ID appears in the "Access denied" error. This makes me think
the root of the problem would be on how Tuscany is reading the contribution
file although the GAE environment allows reading, only writing is not
allowed. That is the reason why I brought it up on the mailing list as I
expected you to have hit this problem before...

Thanks,

Florian

[0] http://pastebin.com/SaAMQwUf
<http://pastebin.com/SaAMQwUf>

On Fri, Aug 20, 2010 at 10:02 AM, Luciano Resende <luckbr1...@gmail.com>wrote:

> On Thu, Aug 19, 2010 at 12:13 PM, Florian MOGA <moga....@gmail.com> wrote:
> > Hi,
> > I've been trying to deploy the sample on GAE but I'm seeing this error in
> > the logs:
> >
> > org.apache.tuscany.sca.host.webapp.TuscanyServletFilter init:
> > java.security.AccessControlException: access denied
> (java.io.FilePermission
> > /base/data/home/apps/tuscany-comet/1.344198860972114123/_ah read)
> > java.lang.IllegalStateException: java.security.AccessControlException:
> > access denied (java.io.FilePermission
> > /base/data/home/apps/tuscany-comet/1.344198860972114123/_ah read)
> >       at
> org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:173)
> >       at
> >
> org.apache.tuscany.sca.host.webapp.WebAppHelper.createAndStartNode(WebAppHelper.java:215)
> >       at
> >
> org.apache.tuscany.sca.host.webapp.WebAppHelper.init(WebAppHelper.java:169)
> >       at
> >
> org.apache.tuscany.sca.host.webapp.TuscanyServletFilter.init(TuscanyServletFilter.java:63)
> >       at
> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> >       at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> >       at
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> >       at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> >       at
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> >       at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> >       at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> >       at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> >       at
> >
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:191)
> >       at
> >
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
> >       at
> >
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
> >       at
> >
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:251)
> >       at
> >
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:6784)
> >       at
> >
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:6782)
> >       at
> >
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
> >       at
> com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
> >       at com.google.net.rpc.impl.Server$2.run(Server.java:852)
> >       at
> >
> com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
> >       at
> >
> com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
> >       at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
> >       at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
> >       at
> >
> com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
> >       at
> >
> com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319)
> >       at
> >
> com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290)
> >       at
> com.google.net.async.Connection.handleReadEvent(Connection.java:474)
> >       at
> >
> com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
> >       at
> >
> com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
> >       at
> com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
> >       at
> > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
> >       at
> >
> com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:418)
> >       at java.lang.Thread.run(Unknown Source)
> > Caused by: java.security.AccessControlException: access denied
> > (java.io.FilePermission
> > /base/data/home/apps/tuscany-comet/1.344198860972114123/_ah read)
> >       at
> >
> com.google.apphosting.runtime.security.CustomSecurityManager$1.run(CustomSecurityManager.java:72)
> >       at java.security.AccessController.doPrivileged(Native Method)
> >       at
> >
> com.google.apphosting.runtime.security.CustomSecurityManager.checkPermissionForPreverifiedFiles(CustomSecurityManager.java:62)
> >       at
> >
> com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:39)
> >       at java.lang.SecurityManager.checkRead(Unknown Source)
> >       at java.io.File.isFile(File.java:843)
> >       at
> >
> org.apache.tuscany.sca.contribution.scanner.impl.DirectoryContributionScanner.traverse(DirectoryContributionScanner.java:109)
> >       at
> >
> org.apache.tuscany.sca.contribution.scanner.impl.DirectoryContributionScanner.traverse(DirectoryContributionScanner.java:126)
> >       at
> >
> org.apache.tuscany.sca.contribution.scanner.impl.DirectoryContributionScanner.scanContributionArtifacts(DirectoryContributionScanner.java:91)
> >       at
> >
> org.apache.tuscany.sca.contribution.scanner.impl.DirectoryContributionScanner.scan(DirectoryContributionScanner.java:58)
> >       at
> >
> org.apache.tuscany.sca.contribution.processor.impl.ContributionContentProcessor.read(ContributionContentProcessor.java:136)
> >       at
> >
> org.apache.tuscany.sca.contribution.processor.impl.ContributionContentProcessor.read(ContributionContentProcessor.java:65)
> >       at
> >
> org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProcessorExtensionPoint$LazyURLArtifactProcessor.read(DefaultURLArtifactProcessorExtensionPoint.java:288)
> >       at
> >
> org.apache.tuscany.sca.deployment.impl.DeployerImpl.loadContribution(DeployerImpl.java:694)
> >       at
> >
> org.apache.tuscany.sca.node.impl.NodeFactoryImpl.loadContributions(NodeFactoryImpl.java:394)
> >       at
> org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:125)
> >       ... 34 more
> >
> > I've seen you guys managed to deploy some Tuscany apps. Any ideas on how
> I
> > can bypass this error?
> >
> > Thanks,
> >
> > Florian
>
>
> From the exception above, it seems that you are hitting some of the
> "sandbox" limitation [1] as it's not allowed to access various classes
> such as FileSystem classes. It seems that GAP has support for similar
> functionality trough "The Channel API" [2]
>
> [1] http://code.google.com/appengine/docs/java/runtime.html#The_Sandbox
> [2]
> http://googleappengine.blogspot.com/2010/05/app-engine-at-google-io-2010.html
>
> --
> Luciano Resende
> http://people.apache.org/~lresende
> http://twitter.com/lresende1975
> http://lresende.blogspot.com/
>

Reply via email to