Working on a small project to learn REST/Restlet and ran into a problem where
I can successfully post from a Java client to my server or from an HTML form
to my server, but when I try to post from Javascript it fails.  I am
following the sample code that is now on github
(https://github.com/restlet/restlet-framework-js/tree/master/tests/org.restlet.js.tests/src/browser/static/html).
  

On the client side...
For Java (working), I have:
    System.out.println("Adding a commitment");
                ClientResource client3 = new
ClientResource("http://localhost:8888/commitments/";);
                client3.setRequestEntityBuffering(true);  // Per
http://stackoverflow.com/questions/6462142/length-required-411-length-required-in-a-restlet-client
                Commitment commitment3 = new Commitment();
                commitment3.setTitle("Added through post - Java client");
                commitment3.setDescription("This is a description of post Java 
client");
                Representation representation3 = client3.post(commitment3);

For Javascript (not working), I have:            
asyncTest("Post with resource Commitment (json)", function() {
  var clientResource = new ClientResource("/commitments/");
  var commitment = {
        title: "From automated test",
        description: "This is from our automated test"
  }
  var jsonRepresentation = new JsonRepresentation(commitment);
  alert(jsonRepresentation.getText());
  // Result is: {"title":"From automated test","description":"This is from
our automated test"}
  clientResource.post(jsonRepresentation, function(representation) {
    console.log("representation.getText() = "+representation.getText());
    // Note: commenting or not commenting out all the lines below doesn't
make a difference
          //var jsonRepresentation = new JsonRepresentation(representation);
          //var obj = jsonRepresentation.getObject();
          //ok(obj.id, "1");
          //ok(obj.title, "From automated test");
          //ok(obj.description, "This is from our automated test");
          start();
  }, MediaType.APPLICATION_JSON);
});

The error, as seen in the Javascript console, is:
ReferenceError at restlet-browser.js: 3175
        arguments: Array[1]
        0: "EncodingWriter"
        length: 1
        __proto__: Array[0]
        get message: function getter() { [native code] }
        get stack: function getter() { [native code] }
        set message: function setter() { [native code] }
        set stack: function setter() { [native code] }
        type: "not_defined"
        __proto__: Error

On the server side, I have methods to handle the different clients:
  @Post()
  public String add(Commitment commitment); // For Java post
  @Post("json")
  public String acceptJson(String value);  // For JSON
  @Post("form")
  public Representation accept(Form form);  // For HTML form
  
But the Javascript client does not appear to be even making the call to the
server.  

Has anyone used the Restlet Edition for Javascript to do a post?  
 
Thanks so much!
RB 

--
View this message in context: 
http://restlet-discuss.1400322.n2.nabble.com/Post-problems-when-using-Restlet-Javascript-Edition-tp7270413p7270413.html
Sent from the Restlet Discuss mailing list archive at Nabble.com.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2920183

Reply via email to