Interestingly, I have 'just' come across the same problem in the middle of development!
Using Elipse's neat trick of setting SDK versions, I have found that this problem exists since V2.0, whereas the older SDK 1.7.1 works fine = a very poor but quick work around, that is FAR from ideal!!! Come on Google, give us a fix! Cheers Dave On Jul 8, 8:51 pm, emurmur <[email protected]> wrote: > I've traced through the Restlet 2.0rc4 code for both the success case > (no GWT) and the failure case (gwt-dev.jar in on classpath). The > issue is how DomRepresentation.createTransformer() creates the > necessary javax.xml.transform.TransformerFactory instance. > > In the success case, we end up in FractoryFinder.findJarService() at > the line 255, > > is = ss.getResourceAsStream(cl, serviceId); > > and the result is null. Therefore, the code returns and uses the > fallback class > ("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"), > which works. > > In the failure case (when gwt-dev.jar in on the classpath), line 255 > DOES return a class, the code that immediately follows is then able to > read the factoryClassName from the class, which ends up being, > "org.apache.xalan.processor.TransformerFactoryImpl". Later, the > attempt to instantiate this class fails with a ClassNotFoundException. > > So it seems that the gwt-dev.jar file contains some configuration that > tricks Restlet into attempting to instantiate the wrong > TransformerFactory implementation. > > How would I go about making Restlet ignore this Jar. Note that this > is only an issue in the development environment, because gwt-dev.jar > is not copied to the production server. However, it's still a show > stopper bug for me, because I can't debug my client application with > my rest services. > > Does anyone on the GWT team know that this may be about? Any help > would be welcome. I will pass it on to the Restlet team. Thanks. > > On Jul 7, 10:01 am, emurmur <[email protected]> wrote: > > > > > I have an Java App Engine project using SDK 1.3.5 and the latest > > Restlet GAE 2.0rc4 to implement some restful services. Everything > > worked well (this has been in production for 6 months) until I added > > GWT 2.0.4 to the project. As soon as I check use GWT on in the > > control panel in Eclipse (without even adding a module) my services > > start to fail in the development server with the following class not > > found exception: > > >Couldn'twritetheXMLrepresentation:Provider > >org.apache.xalan.processor.TransformerFactoryImpl not found > > > This exception happens on the way out of my Restlet, after a GET of a > > lists of entities, as it tries to turn my DomRepresentation into the > > response payload. I've found that if I remove the gwt-dev.jar, the > > exception does not happen. Of course, I can't use the development > > server if I do that. Again, this all works fine without GWT. > > > Here is the relevant parts of the trace: > > > SEVERE: An exception occured writing the response entity > > java.io.IOException:Couldn'twritetheXMLrepresentation:Provider > >org.apache.xalan.processor.TransformerFactoryImpl not found > > at > > org.restlet.ext.xml.DomRepresentation.write(DomRepresentation.java: > > 287) > > at > > org.restlet.representation.WriterRepresentation.write(WriterRepresentation. > > java: > > 104) > > at > > org.restlet.engine.http.ServerCall.writeResponseBody(ServerCall.java: > > 502) > > at org.restlet.engine.http.ServerCall.sendResponse(ServerCall.java: > > 439) > > at > > org.restlet.ext.servlet.internal.ServletCall.sendResponse(ServletCall.java: > > 451) > > at > > org.restlet.engine.http.adapter.ServerAdapter.commit(ServerAdapter.java: > > 198) > > at > > org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java: > > 151) > > at > > org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1037) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > > at > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) > > at > > org.mortbay.jetty.servlet.ServletHandler > > $CachedChain.doFilter(ServletHandler.jav > > a:1166) > > at > > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFi > > lter. > > java:51) > > at > > org.mortbay.jetty.servlet.ServletHandler > > $CachedChain.doFilter(ServletHandler.jav > > a:1157) > > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans > > actio > > nCleanupFilter.java:43) > > at > > org.mortbay.jetty.servlet.ServletHandler > > $CachedChain.doFilter(ServletHandler.jav > > a:1157) > > at > > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile > > Filte > > r.java:122) > > at > > org.mortbay.jetty.servlet.ServletHandler > > $CachedChain.doFilter(ServletHandler.jav > > a:1157) > > at > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > > 388) > > at > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > > 216) > > at > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > > 182) > > at > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > > 765) > > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > > 418) > > at > > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEn > > gineW > > ebAppContext.java:70) > > at > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > > 152) > > at > > com.google.appengine.tools.development.JettyContainerService > > $ApiProxyHandler.han > > dle(JettyContainerService.java:349) > > at > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > > 152) > > at org.mortbay.jetty.Server.handle(Server.java:326) -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
