2016-04-13 8 views
0

私のIBM Mobileの最初のアプリケーションでは、 という名前のクリケット側のfuctionがあります。これはlinkから取得します。FWLSE0013E:プロシージャを呼び出せませんJSONObjectをJSONArrayにキャストすることができません

私はこのエラーを取得ナビゲータで自分のアプリケーションを実行しようwhene submitLogin

function submitLogin(parameters){ 
     if (!parameters) 
     return { 'isSuccessful': false, 'errorMsg' : 'parameters is ' + parameters}; 
     var role=""; 
     if (parameters.username=='admin') 
      role='admin'; 
     else 
      role='customer'; 
     var input = { 
       method : 'post', 
       returnedContentType : 'plain', 
       path : 'rest/default/V1/integration/' + role + '/token'+ 
          '?username='+parameters.username+ 
          '&password='+parameters.password, 
       headers: {"Accept":"application\/json"} 
      }; 
      var response = WL.Server.invokeHttp(input); 
      var token=response.text; 
      token = token.replace("\"", "");   //delete the "" 
      token = token.replace("\"", "");*/ 
      //token exp: l9ea4tv62mbfy7kmt0ekv6vdxmb23gjp 
      if (token!=null) 
      { 
       var userIdentity = { 
         userId: parameters.username, 
         displayName: parameters.username, 
         attributes: { 
          foo: "bar" 
         } 
       }; 
       WL.Server.setActiveUser("AdapterAuthRealm", userIdentity); 

       return { 
        authRequired: true 
       }; 
      } 

    return onAuthRequired(null, "Invalid login credentials"); 
} 

という名前のアダプタ機能を呼び出したい

login: function (username,password){  
      //promise 
      var logindef = $q.defer(); 
      //tempuser 
      tempUser = {username:username, password:password}; 
      userObj.username = username; 
      checkOnline().then(function (onl){ 
       if (onl){ //online 
        console.log("attempting online login"); 
        var parameters={ 
          'username':'username', 
          'password':'password' 
         }; 
        var options = { 
         parameters:parameters, 
         adapter:"realmAuth", 
         procedure:"submitLogin" 
        }; 
        ch.submitAdapterAuthentication(options,{ 
         onSuccess: function(){ 
          console.log("-> submitAdapterAuthentication onSuccess!"); 
          //update user info, as somehow isUserAuthenticated return false without it 
          WL.Client.updateUserInfo({onSuccess: function(){  
           //return promise 
           logindef.resolve(true); 
          }}); 
         } 
        }); 
       } else { //offline 
        console.log("attempting offline login"); 
        logindef.resolve(offlineLogin()); 
       } 
      }); 
      return logindef.promise; 
     }, 

:[ERROR] FWLSE0013Eが

:プロシージャを起動することはできませんrealmAuth/submitLogin [project Eticket] com.ibm.json.java.JSONObjectは、com.ibm.json.java.JSONArrayにキャストできません。

+0

使用しているMFPのバージョンは? – DoraC

+0

私はMF Vを使用します:7.1 –

答えて

1

parametersアレイの形式が正しくありません。 、

var parameters={ 
       'username':'username', 
       'password':'password' 
       }; 

Javascriptのアダプタは無名のを期待するパラメータのリストを命じた:

あなたは書いています。 JSONオブジェクトではありません。

それは次のようになります。

var parameters = ['myUsername','myPassword'] 

あなたのアダプタ署名はもちろんfunction submitLogin(parameters)からfunction submitLogin(username,password)に、それに応じて変更する必要があります。

関連する問題