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

Reply via email to