>
> Why does GAE do so?

Scalability, Resource Utilization and Security.
GAE is a hosted service that google provides. One of the ways in which they
scale is preventing writes to the file system. Because you don't write to
the file system, if a machine goes down your application doesn't lose
anything. Preventing threads is more of a CPU utilization concern, I think.
By restricting you to http request/response, they can ensure you don't use
more than a given threshold of CPU. And finally, preventing sockets is a
security concern. You don't want to allow arbitrary running code to open
socket connections ..

None of this is related to GWT ofcourse. You can use GWT with any backend
technology you want. Its unfortunate that GAE is enabled by default though.

--Sri
P.S. BTW, did that fix your problem?

On 12 May 2010 23:15, Carfield Yim <carfi...@gmail.com> wrote:

> Interesting, why GAE do so? My application opening a file, basically
> it is just a better looking webserver. However, it doesn't look like
> inheritance from servlet security restriction...
>
> Is there more document mention why GAE do that?
>
> On May 12, 2:14 am, Sripathi Krishnan <sripathi.krish...@gmail.com>
> wrote:
> > I am guessing the class hk/com/carfield/core/Context is performing a
> > restricted operation - like creating a thread or opening a file/socket
> > connection. GAE does not allow you to perform such operations, and when
> you
> > do - it fails with a stack trace similar to what you have pasted.
> >
> > Disable GAE in your eclipse settings, and completely remove all GAE jar
> >  files from your classpath. That should solve the problem.
> >
> > --Sri
> >
> > On 11 May 2010 22:48, Carfield Yim <carfi...@gmail.com> wrote:
> >
> > > HI, I just use the class in another JAR, eclipse show no compilation
> > > error, and GWT compilation is success, why I still get following
> > > error? BTW, I start the application using eclipse GWT plugin.
> >
> > > May 11, 2010 5:17:36 PM com.google.apphosting.utils.jetty.JettyLogger
> > > warn
> > > WARNING: Nested in javax.servlet.ServletException: init:
> > > java.lang.NoClassDefFoundError: hk/com/carfield/core/Context
> > >        at
> >
> > >
> hk.com.carfield.server.InternetfolderServiceImpl.<init>(InternetfolderServi
> ceImpl.java:
> > > 27)
> > >        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > Method)
> > >        at
> >
> > >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcce
> ssorImpl.java:
> > > 57)
> > >        at
> >
> > >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstru
> ctorAccessorImpl.java:
> > > 45)
> > >        at
> java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> > >        at java.lang.Class.newInstance0(Class.java:372)
> > >        at java.lang.Class.newInstance(Class.java:325)
> > >        at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:
> > > 339)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > > 463)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1093)
> > >        at
> >
> > >
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi
> lter.java:
> > > 51)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans
> actionCleanupFilter.java:
> > > 43)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile
> Filter.java:
> > > 121)
> > >        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(DevAppEn
> gineWebAppContext.java:
> > > 70)
> > >        at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 139)
> > >        at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:352)
> > >        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: java.lang.ClassNotFoundException:
> > > hk.com.carfield.core.Context
> > >        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> > >        at java.security.AccessController.doPrivileged(Native Method)
> > >        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> > >        at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
> > >        at
> >
> > >
> com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(Iso
> latedAppClassLoader.java:
> > > 151)
> > >        at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
> > >        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
> > >        ... 34 more
> > > May 11, 2010 5:17:36 PM com.google.apphosting.utils.jetty.JettyLogger
> > > warn
> > > WARNING: Nested in javax.servlet.ServletException: init:
> > > java.lang.NoClassDefFoundError: hk/com/carfield/core/Context
> > >        at
> >
> > >
> hk.com.carfield.server.InternetfolderServiceImpl.<init>(InternetfolderServi
> ceImpl.java:
> > > 27)
> > >        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > Method)
> > >        at
> >
> > >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcce
> ssorImpl.java:
> > > 57)
> > >        at
> >
> > >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstru
> ctorAccessorImpl.java:
> > > 45)
> > >        at
> java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> > >        at java.lang.Class.newInstance0(Class.java:372)
> > >        at java.lang.Class.newInstance(Class.java:325)
> > >        at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:
> > > 339)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > > 463)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1093)
> > >        at
> >
> > >
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi
> lter.java:
> > > 51)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans
> actionCleanupFilter.java:
> > > 43)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile
> Filter.java:
> > > 121)
> > >        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(DevAppEn
> gineWebAppContext.java:
> > > 70)
> > >        at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 139)
> > >        at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:352)
> > >        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)
> > > May 11, 2010 5:17:36 PM com.google.apphosting.utils.jetty.JettyLogger
> > > warn
> > > WARNING: /gtwinternetfolder/internetfolder
> > > java.lang.NoClassDefFoundError: hk/com/carfield/core/Context
> > >        at
> >
> > >
> hk.com.carfield.server.InternetfolderServiceImpl.<init>(InternetfolderServi
> ceImpl.java:
> > > 27)
> > >        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > Method)
> > >        at
> >
> > >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcce
> ssorImpl.java:
> > > 57)
> > >        at
> >
> > >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstru
> ctorAccessorImpl.java:
> > > 45)
> > >        at
> java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> > >        at java.lang.Class.newInstance0(Class.java:372)
> > >        at java.lang.Class.newInstance(Class.java:325)
> > >        at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:
> > > 339)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > > 463)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1093)
> > >        at
> >
> > >
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi
> lter.java:
> > > 51)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans
> actionCleanupFilter.java:
> > > 43)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile
> Filter.java:
> > > 121)
> > >        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(DevAppEn
> gineWebAppContext.java:
> > > 70)
> > >        at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 139)
> > >        at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:352)
> > >        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)
> > > May 11, 2010 5:17:36 PM com.google.apphosting.utils.jetty.JettyLogger
> > > warn
> > > WARNING: /gtwinternetfolder/internetfolder
> > > java.lang.NoClassDefFoundError: hk/com/carfield/core/Context
> > >        at
> >
> > >
> hk.com.carfield.server.InternetfolderServiceImpl.<init>(InternetfolderServi
> ceImpl.java:
> > > 27)
> > >        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > Method)
> > >        at
> >
> > >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAcce
> ssorImpl.java:
> > > 57)
> > >        at
> >
> > >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstru
> ctorAccessorImpl.java:
> > > 45)
> > >        at
> java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> > >        at java.lang.Class.newInstance0(Class.java:372)
> > >        at java.lang.Class.newInstance(Class.java:325)
> > >        at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:
> > > 339)
> > >        at
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > > 463)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1093)
> > >        at
> >
> > >
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi
> lter.java:
> > > 51)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans
> actionCleanupFilter.java:
> > > 43)
> > >        at org.mortbay.jetty.servlet.ServletHandler
> > > $CachedChain.doFilter(ServletHandler.java:1084)
> > >        at
> >
> > >
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile
> Filter.java:
> > > 121)
> > >        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(DevAppEn
> gineWebAppContext.java:
> > > 70)
> > >        at
> > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
> > > 139)
> > >        at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:352)
> > >        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: java.lang.ClassNotFoundException:
> > > hk.com.carfield.core.Context
> > >        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> > >        at java.security.AccessController.doPrivileged(Native Method)
> > >        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> > >        at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
> > >        at
> >
> > >
> com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(Iso
> latedAppClassLoader.java:
> > > 151)
> > >        at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
> > >        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
> > >        ... 34 more
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Google Web Toolkit" group.
> > > To post to this group, send email to
> google-web-tool...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com><google-web-toolkit%2Bunsubs
> cr...@googlegroups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-web-toolkit?hl=en.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> > To post to this group, send email to google-web-toolkit@googlegroups.com
> .
> > To unsubscribe from this group, send email to
> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
> .
> > For more options, visit this group athttp://
> groups.google.com/group/google-web-toolkit?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to google-web-tool...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to