Bonjour,
Je teste la fonctionnalité WebServices de Play 2.1 car je dois faire dialoguer deux applications.
La première doit envoyer des données, de préférence sous forme de données Json, à la seconde.
Voici des extraits de code de la première :
conf/routes :
WSTests.java :Code:GET /wstests controllers.WSTests.send()
Quand je me rends sur la page correspondante, pas de problème, elle me renvoie bien une représentation Json de mon objet.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package controllers; import play.*; import play.mvc.*; import models.*; import org.codehaus.jackson.JsonNode; import play.libs.Json; public class WSTests extends Controller { public static Result send() { Individu ind = Individu.find.byId(610L); JsonNode node = Json.toJson(ind); return ok(node); } }
Voici le code de ma seconde application, celle qui doit requêter la première :
J'ai aussi essayé en gérant le caractère asynchrone de l'échange, comme le suggère la documantation de Play! :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package controllers; import play.*; import play.mvc.*; import play.libs.WS; import play.libs.Json; import org.codehaus.jackson.JsonNode; import views.html.*; public class Application extends Controller { public static Result index() { JsonNode result = WS.url("localhost:9001/wstests").get().get().asJson(); return ok(result); } }
Dans les deux cas, rien à faire, quand je sollicite l'url correspondant à cette méthode dans mon navigateur ou avec Curl, l'application semble attendre indéfiniment la réponse.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package controllers; import play.*; import play.mvc.*; import play.libs.WS; import play.libs.Json; import org.codehaus.jackson.JsonNode; import views.html.*; public class Application extends Controller { public static Result index() { return async( WS.url("localhost:9001/wstests").get().map( new Function<WS.Response, Result>() { public Result apply(WS.Response response) { return ok(response.asJson()); } } ) ); } }
Qu'ai-je loupé d'essentiel ?
Merci d'avance pour votre aide.
PY