2015-04-15 2 views
-1

Я следую Java SQL Adapter учебник для MobileFirst платформы 7.MobileFirst - Вызов Java SQL адаптер процедура адаптер

Я пытаюсь получить Пользователь с USERID = «bjones», но я не знаю, как установить params {userId} в процедуру /adapters/UserAdapter/{userId}.

function loadUsers(){ 
    busyIndicator.show(); 

    var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/", WLResourceRequest.GET); 
    resourceRequest.setQueryParameter("userId", "bjones"); 
    resourceRequest.send().then(
     loadUsersSuccess, 
     loadUsersFailure 
);} 

function loadUsersSuccess(result){ 
    WL.Logger.debug("Feed retrieve success"); 
    busyIndicator.hide(); 
    WL.Logger.debug(JSON.stringify(result)); 
    if (result.responseJSON.length>0) 
    displayFeeds(result.responseJSON); 
    else 
    loadUsersFailure();} 

function loadUsersFailure(result){ 
    WL.Logger.error("Feed retrieve failure"); 
    busyIndicator.hide(); 
    WL.SimpleDialog.show("Banking Application", "Service not available. Try again later.", 
     [{ 
      text : 'Reload', 
      handler : WL.Client.reloadApp 
     }, 
     { 
      text: 'Close', 
      handler : function() {} 
     }] 
    );} 

Мой запрос

локальный: 10080/JavaAdapters/адаптеры/UserAdapter/идентификатор пользователя = bjones

но ответ JSON содержит все пользовательские хранящийся в моей базе данных Image for response

Кроме того, как насчет типа вызова REST @PUT с параметром Path param " Id»и тело Титулы:„FirstName“,„LastName“,„пароль“, для того, чтобы обновить-пользователь

ответ

1

Из учебника адаптера конечной точкой является /{userId} что означает userId не пары запроса, но она является частью url. Вам необходимо обновить loadUsers функцию, чтобы она присоединяет userId в конце URL-адрес, так что в вашем примере FULLPATH будет /adapters/UserAdapter/bjones

function loadUsers(){ 
    busyIndicator.show(); 

    var usedId = "bjones"; 

    var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/"+userId, WLResourceRequest.GET); 
    resourceRequest.send().then(loadUsersSuccess,loadUsersFailure); 

} 

UPDATE:

function loadUsersSuccess(result) { 
    WL.Logger.debug("Feed retrieve success"); 
    busyIndicator.hide(); 
    WL.Logger.debug(JSON.stringify(result)); 
    // if responseJSON is not null user data was returned 
    if (result.responseJSON != null) { 
    displayFeeds(result.responseJSON); 
    } else{ 
    loadUsersFailure(); 
    } 
} 
+0

как определить loadUsersSuccess функция, потому что теперь result.responseJSON.length не определено. «responseJSON»: {«lastName»: «Jones», «userId»: «bjones», «firstName»: «Brad», «password»: «bjones»} – BraveWolf

+0

проверить обновление до ответа. есть много других способов, которыми вы могли бы это сделать: –

+0

как насчет WLResourceRequest.PUT, чтобы обновить пользователя – BraveWolf

1

есть в основном два типа URL с параметрами: 1. Параметр пути: /адаптеры/UserAdapter/users/{userId} 2. Параметр запроса: /адаптеры/UserAdapter/users? userId = {userId}

Java адаптер с параметром запроса:

@GET 
@Produces("application/json") 
@OAuthSecurity(enabled = false) 
@Path("/users") 

public String getuserById(@QueryParam("userID") String userId) 

{ 
      System.out.println(userId); 
} 

Java адаптер с параметром путь:

@GET 
@Produces("application/json") 
@OAuthSecurity(enabled = false) 
@Path("https://stackoverflow.com/users/{userId}") 

public String getuserById(@PathParam("userId") String userId) 

{ 
      System.out.println(userId); 
} 

Я надеюсь, второй пример дает ответ на ваш вопрос в Java адаптер.

Смежные вопросы