Hello Weimin, I suspect you are not using the right edition. The Restlet framework has a unique source code repository which is used for several editions (see http://wiki.restlet.org/developers/267-restlet.html). I notice that the exception is thrown by this class => "org.restlet.engine.http.StreamClientHelper" which must not be part of the dedicated edition for the gae platform. Could you check this point?
Best regards, Thierry Boileau > Hi Thierry, > > I have two Restlet instances running on gae. I am trying to redirect the > request from a gwt client for the first gae Restlet instance to the second > one. However when I used the cutom Rediretor code you sent in > testChristophe.zip for redirecting on gae and I got the following error > message. Looks like gae does not support Sockets, but only allows > URLConnection. Any advise on how to get around this ? > > Thanks very much, > > Weimin > > ---------------------------------------------------------------------------------- > Jan 25, 2010 11:07:20 PM org.restlet.service.StatusService getStatus > SEVERE: Unhandled exception or error intercepted > java.lang.NoClassDefFoundError: javax.net.SocketFactory is a restricted > class. Please see the Google App Engine developer's guide for more details. > at > com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) > at > org.restlet.engine.http.StreamClientHelper.createSocketFactory(StreamClientHelper.java:274) > at > org.restlet.engine.http.StreamClientHelper.create(StreamClientHelper.java:154) > at > org.restlet.engine.http.HttpClientAdapter.toSpecific(HttpClientAdapter.java:645) > at > org.restlet.engine.http.HttpClientHelper.handle(HttpClientHelper.java:107) > at org.restlet.Client.handle(Client.java:268) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Router.doHandle(Router.java:396) > at org.restlet.routing.Router.handle(Router.java:612) > at > org.restlet.engine.component.ComponentClientDispatcher.doHandle(ComponentClientDispatcher.java:130) > at > org.restlet.engine.TemplateDispatcher.handle(TemplateDispatcher.java:121) > at > org.restlet.engine.component.ChildClientDispatcher.parentHandle(ChildClientDispatcher.java:139) > at > org.restlet.engine.component.ChildClientDispatcher.doHandle(ChildClientDispatcher.java:114) > at > org.restlet.engine.TemplateDispatcher.handle(TemplateDispatcher.java:121) > at > org.restlet.routing.Redirector.redirectDispatcher(Redirector.java:324) > at > org.restlet.routing.Redirector.redirectClientDispatcher(Redirector.java:298) > at org.restlet.routing.Redirector.handle(Redirector.java:271) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Router.doHandle(Router.java:396) > at org.restlet.routing.Router.handle(Router.java:612) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at > org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:152) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) > at > org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72) > at org.restlet.Application.handle(Application.java:400) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Router.doHandle(Router.java:396) > at org.restlet.routing.Router.handle(Router.java:612) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.routing.Router.doHandle(Router.java:396) > at org.restlet.routing.Router.handle(Router.java:612) > at org.restlet.routing.Filter.doHandle(Filter.java:156) > at org.restlet.routing.Filter.handle(Filter.java:203) > at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111) > at org.restlet.Component.handle(Component.java:382) > at org.restlet.Server.handle(Server.java:400) > at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71) > at > org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:149) > at > org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1019) > at > org.restlet.ext.gwt.GwtShellServletWrapper.service(GwtShellServletWrapper.java:187) > 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.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > at > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.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(DevAppEngineWebAppContext.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.headerComplete(HttpConnection.java:830) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > 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) > ---------------------------------------------------------------------------------------------- > ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2442004

