0
votes

I am following the Java SQL Adapter tutorial for MobileFirst Platform 7. Im trying to create a new user by using REST call type @POST, but the chrome console is

POST http://192.168.56.1:10080/JavaAdapters/adapters/UserAdapter/?userId=test&lastName=test&firstName=test&password=test 409 (Conflict)

and the response is

Column 'userId' cannot be null

I think the params of this procedure are set with null value

This is my code

var userId = "test";var lastName = "test";var firstName = "test";var password = "test";

function createUser(userId,lastName,firstName,password){
  busyIndicator.show();
  var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/", WLResourceRequest.POST);
  resourceRequest.setQueryParameter("userId", userId);
  resourceRequest.setQueryParameter("lastName", lastName);
  resourceRequest.setQueryParameter("firstName", firstName);
  resourceRequest.setQueryParameter("password", password);
  resourceRequest.send().then(
        createUserSuccess,
        createUserFailure
);}
1

1 Answers

4
votes

Since you are sending a POST request to the adapter you should not be using setQueryParameter because that is designed for GET requests, you should use sendFormParameters instead of send. Your updated code should look like this:

function createUser(userId, lastName, firstName, password){
  busyIndicator.show();
  var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/", WLResourceRequest.POST);
  var user = {
    "userId": userId,
    "firstName": firstName,
    "lastName": lastName,
    "password": password
  };

  resourceRequest.sendFormParameters(user).then(createUserSuccess).fail(createUserFailure);
}