I have some REST services on my server (Jetty, RESTeasy) and a GWT client.
I choosed to use Restlet-GWT module on the front end.
I made a JSE client (RESTeasy client) and my service is well called (i see SQL trace in the log of Jetty server) and i get an xml response.
Then i tried from GWT with Restlet. The web service is called (Jetty log) but i have a null response.
Web service (Back end):
@GET
@Path("/getArt/{id}")
@Produces("application/xml")
public Art getArt(@PathParam("id")int id){
Art art= artDAO.findById(id);
return art;
}
Front-end GWT :
public class Front_End implements EntryPoint {
/**
* This is the entry point method.
*/
public void onModuleLoad() {
final Client client = new Client(Protocol.HTTP);
client.get("http://localhost:8080/rest/service/getArt/1", new Callback() {
@Override
public void onEvent(Request request, Response response) {
System.out.println("Reponse : " + response.getEntity().getText());
}
});
}
RESTeasy client working :
public Object test(int id){
try {
ClientRequest request = new ClientRequest("http://localhost:8080/rest/service/getArt/"+id);
request.accept("application/xml");
ClientResponse<String> response = request.get(String.class);
if (response.getStatus() == 200)
{
Unmarshaller un = jc.createUnmarshaller();
Object o = un.unmarshal(new StringReader(response.getEntity()));
return o;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Are RESTeasy and Restlet “compatible” ? Should i use Restlet in the back end instead of RESTeasy ? What am i missing ?
Thx in advance
It was a SOP issue.
My server was running on port 8080, and GWT on port 8888.
I used a proxy (put it in your /war in the client side) :
proxy.jsp
then in your class where you make the call, your url becomes :
There is another way to solve it, check https://developers.google.com/web-toolkit/doc/1.6/tutorial/Xsite