Hello, I've just checked also the patch available on the XStream project (https://jira.codehaus.org/browse/XSTR-566) and it fails also. Actually, we were waiting for a fix from the xstream team. It can take some time. I've updated our issue with your comment: http://restlet.tigris.org/issues/show_bug.cgi?id=863
Best regards, Thierry Boileau > Hi, > > I'm a newcomer to Restlet. I'm trying to develop a RESTFul webservice in GAE. > I'd like to serve XML/JSON representations of my resources stored in GAE. So, > I'm using Restlet 2.0 M6, and XStream (the jar provided with your example for > GAE and Android, as it must be patched for GAE). > > When I GET the representation for a resource, I get the proper one, > according to the media types specified in the request. However, when I try to > create a resource submitting a POST with a xml representation, I get the > following: > > java.lang.NoClassDefFoundError: sun.reflect.ReflectionFactory 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 > com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.getLazyRefectionFactory(Sun14ReflectionProvider.java:105) > at > com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.getMungedConstructor(Sun14ReflectionProvider.java:97) > at > com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.newInstance(Sun14ReflectionProvider.java:76) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:318) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:167) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:71) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:49) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:126) > at > com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:939) > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:924) > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:867) > at > org.restlet.ext.xstream.XstreamRepresentation.getObject(XstreamRepresentation.java:148) > at > org.restlet.ext.xstream.XstreamConverter.toObject(XstreamConverter.java:167) > at > org.restlet.service.ConverterService.toObject(ConverterService.java:156) > at org.restlet.resource.ServerResource.doHandle(ServerResource.java:452) > at org.restlet.resource.ServerResource.post(ServerResource.java:1052) > at org.restlet.resource.ServerResource.doHandle(ServerResource.java:522) > at > org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:579) > at > org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:258) > at org.restlet.resource.ServerResource.handle(ServerResource.java:818) > at org.restlet.resource.Finder.handle(Finder.java:516) > 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:396) > 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:1013) > 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.content(HttpConnection.java:844) > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) > 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) > > This seems XStream issue, but I'd like to know if there exists a patch for > this framework to resolve it as I couldn't find it in the JIRA for it. > > Thanks in advance, > > ------------------------------------------------------ > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2441841 > > ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2442044

