Hi Johannes, Thanks for clearly exposing your issue.
Regarding the missing entity, you should try again with Restlet 2.0 M5 which fixed this bug (it used to work in hosted mode but not in compiled mode). If it still doesn't work, please let us know. Regarding transparent serialization, we are working on this already, see this RFE: "Transparent serialization to JSE, GWT, GAE and Android" http://restlet.tigris.org/issues/show_bug.cgi?id=831 Best regards, Jerome Louvel -- Restlet ~ Founder and Lead developer ~ http://www.restlet.org Noelios Technologies ~ Co-founder ~ http://www.noelios.com -----Message d'origine----- De : Johannes Peeters [mailto:[email protected]] Envoyé : mardi 8 septembre 2009 22:31 À : [email protected] Objet : Restlet GWT issue with Response.getEntity() Hi, I am struggling to get the Restlet GWT to query my rest service (provided by resteasy, but I can't change this implemenation). I made a minimal example which calls the rest service (stripped some GWT code), which unfortunately does not work. public class My_frontend_gwt implements EntryPoint { public void onModuleLoad() { final Button myButton = new Button("My"); myButton.addClickListener(new ClickListener() { public void onClick(Widget sender) { final Client client = new Client(Protocol.HTTP); client.get("http://localhost:8088/com.myapp/rest/books/books.xml ", new Uniform() { public void handle(Request request, Response response, Uniform callback) { try { nameField.setText(response.getEntity().getText()); } catch (IOException e) { e.printStackTrace(); } } }); } }); } When I invoke the rest service with a curl call, I get (curl http://localhost:8088/com.myapp/rest/books/books.xml) : <?xml version="1.0" encoding="UTF-8" standalone="yes"? ><collection><book><id_>1</id_><title>test1</title></ book><book><id_>2</id_><title>test2</title></book></collection> I am sure the service is also called from the GWT applications, since I see a hibernate query log passing: Hibernate: select book0_.id_ as id1_84_, ... from Book book0_ But the entitiy in the Response object in the handle method equals null, which causes the getText() method to fail (I also tried getEntityAsXml() instead of getEntity()). So, the results are not fed back into the response, in my opinion. I am running this test with org.restlet.jar from restlet-gwt-2.0m4, which is the only lib in my classpath. The imports I am using are import org.restlet.Client; import org.restlet.Uniform; import org.restlet.data.Protocol; import org.restlet.data.Request; import org.restlet.data.Response; When using org.restlet.gwt-2.0-M3.jar from the maven repository and the following snippet, the entity in my Response is still null, and the GWT hosted mode provides me with the error shown below. import org.restlet.gwt.Callback; import org.restlet.gwt.Client; import org.restlet.gwt.data.Protocol; import org.restlet.gwt.data.Request; import org.restlet.gwt.data.Response; public class My_frontend_gwt implements EntryPoint { public void onModuleLoad() { final Button myButton = new Button("My"); myButton.addClickListener(new ClickListener() { public void onClick(Widget sender) { final Client client = new Client(Protocol.HTTP); client.get("http://localhost:8088/com.myapp/rest/books/books.xml ", new Callback() { public void onEvent(Request request, Response response) { nameField.setText(response.getEntityAsXml().getText()); } }); } }); } Error with stacktrace: [ERROR] Uncaught exception escaped java.lang.NullPointerException: null at com.myapp.gwt. My_frontend_gwt $1$1.onEvent(My_frontend_gwt.java:75) at org.restlet.gwt.engine.http.HttpClientConverter $1.onEvent(HttpClientConverter.java:383) at org.restlet.gwt.engine.http.GwtHttpClientCall $2.onResponseReceived(GwtHttpClientCall.java:234) at com .google .gwt.http.client.Request.fireOnResponseReceivedImpl(Request.java:264) at com .google .gwt.http.client.Request.fireOnResponseReceivedAndCatch(Request.java: 236) at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java: 227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:585) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.mac.MethodDispatch.invoke(MethodDispatch.java: 71) at org.eclipse.swt.internal.carbon.OS.ReceiveNextEvent(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2909) at com .google.gwt.dev.SwtHostedModeBase.processEvents(SwtHostedModeBase.java: 235) at com.google.gwt.dev.HostedModeBase.pumpEventLoop(HostedModeBase.java:558) at com.google.gwt.dev.HostedModeBase.run(HostedModeBase.java:405) at com.google.gwt.dev.HostedMode.main(HostedMode.java:232) So, as a starter, I would like to get to the plain xml result in my response (which is now giving me the NullPointerException). But it would be even better if I can get an automatic translation between the xml result and a set of java pojo's that I will make available for GWT, analogous to what Resteasy does to go from my jpa model to the xml representation (with XmlAdapters for the classes that have no default serialization in jaxb). A long post, but I could not bring the message without this elaboration. Let me know if I need certain aspects need more clarification. Thanks, Johannes ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=23926 43 ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2401619

