I probably know where the code is broken. Somebody changed the code to treat 
web resources as files in host-webapp and GAE is not happy with that. I'll try 
to fix it later.

Thanks,
Raymond
________________________________________________________________ 
Raymond Feng
[email protected]
Apache Tuscany PMC member and committer: tuscany.apache.org
Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
Personal Web Site: www.enjoyjava.com
________________________________________________________________

On Aug 24, 2010, at 5:42 PM, Florian MOGA wrote:

> 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:
> I 08-19 11:19AM 41.228
> org.apache.tuscany.sca.node.impl.NodeImpl start: Starting node: 
> 1.344198860972114123 domain: default
> I 08-19 11:19AM 41.229
> 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
> 
> 
> On Fri, Aug 20, 2010 at 10:02 AM, Luciano Resende <[email protected]> 
> wrote:
> On Thu, Aug 19, 2010 at 12:13 PM, Florian MOGA <[email protected]> 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