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/ >
