Restlet la mise en œuvre de post avec json de recevoir et de réponse

Tout d'abord, ce que je voulais savoir est ce que je fais est la bonne façon de le faire.

J'ai un scénario où j'ai recevrez un json demande et j'ai actualiser la base de données qui, une fois la base de données est mise à jour que j'ai à répondre de retour avec le json accusé de réception.

Ce que j'ai fait jusqu'à présent, c'est de créer de la classe de l'extension de l'application comme suit:

     @Override  
     public Restlet createRoot() {  
         // Create a router Restlet that routes each call to a  
         // new instance of ScanRequestResource.  
         Router router = new Router(getContext());  

         // Defines only one route  
         router.attach("/request", RequestResource.class);  

         return router;  
     }  

Ma classe de ressource est l'extension de la ServerResource et j'ai la méthode suivante dans ma classe de ressource

@Post("json")
public Representation post() throws ResourceException {
    try {
        Representation entity = getRequestEntity();
        JsonRepresentation represent = new JsonRepresentation(entity);
        JSONObject jsonobject = represent.toJsonObject();
        JSONObject json  = jsonobject.getJSONObject("request");

        getResponse().setStatus(Status.SUCCESS_ACCEPTED);
        StringBuffer sb = new StringBuffer();
        ScanRequestAck ack = new ScanRequestAck();
        ack.statusURL = "http://localhost:8080/status/2713";
        Representation rep = new JsonRepresentation(ack.asJSON());

        return rep;

    } catch (Exception e) {
        getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
    }

Mon premier souci est l'objet que j'recevoir dans l'entité est inputrepresentation donc quand j'extrais le jsonobject de la jsonrepresentation créé je reçois toujours vide/objet null.

J'ai essayé de passer le json demande avec le code suivant ainsi que le client joint

function submitjson(){
alert("Alert 1");
    $.ajax({
        type: "POST",
        url: "http://localhost:8080/thoughtclicksWeb/request", 
        contentType: "application/json; charset=utf-8",
        data: "{request{id:1, request-url:http://thoughtclicks.com/status}}",
        dataType: "json",
        success: function(msg){
            //alert("testing alert");
            alert(msg);
        }
  });
};

Client utilisé pour appeler

    ClientResource requestResource = new ClientResource("http://localhost:8080/thoughtclicksWeb/request");
        Representation rep = new JsonRepresentation(new JSONObject(jsonstring));
    rep.setMediaType(MediaType.APPLICATION_JSON);
    Representation reply = requestResource.post(rep);

De l'aide ou des indices sur ce qui est hight apprécié ?

Grâce,
Rahul

Envisager de poser cette question sur le site officiel Restlet-discuter du forum: restlet.tigris.org/ds/viewForumSummary.do?dsForumId=4447

OriginalL'auteur | 2009-08-29