2

私のアプリからMobileFirstアダプタを呼び出す際に問題があります。 アダプタメソッドをテストするためにswagger docsまたはpostmanを使用すると動作します。 残念ながら、アプリのプレビューから、私はメッセージが表示されます。私のアプリからアダプターへの要求が試験中のポート6015に転送されている理由MobileFirst - コールアダプタ - ERR_CONNECTION_RESET

http://localhost:6015/mfp/api/adapters/ServiceAdapter/login?params=%5Btest%2C%20test123%5Dネット:: ERR_CONNECTION_RESET

を私は理解していません私は9080を使用(闊歩し、郵便配達)は、多分それは問題ですが、私は6015から9080

アダプターXMLにアプリのターゲットポートを変更する方法がわからない:

<mfp:adapter name="ServiceAdapter" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:mfp="http://www.ibm.com/mfp/integration" 
     xmlns:http="http://www.ibm.com/mfp/integration/http"> 

<displayName>ServiceAdapter</displayName> 
<description>ServiceAdapter</description> 
<connectivity> 
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
     <protocol>http</protocol> 
     <domain>localhost</domain> 
     <port>53873</port> 
     <connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds> 
     <socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds> 
     <maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode> 
    </connectionPolicy> 
</connectivity> 

<procedure name="login" secured="false" /> 

実装:

function login(login, pass) { 
    path = 'token'; 
    var input = { 
     method : 'post', 
     returnedContentType : 'json', 
     path : path, 
     headers : { 
      'Content-Type' : 'application/x-www-form-urlencoded' 
     }, 
     body : { 
      contentType : 'application/x-www-form-urlencoded', 
      content : 'username=' + login + '&password=' + pass + '&grant_type=password' 
     } 
    }; 
    return MFP.Server.invokeHttp(input); 
} 

とアダプタコール:2017年6月4日を編集した

function Login() { 
    var resourceRequest = new WLResourceRequest(
      "/adapters/ServiceAdapter/login", 
      WLResourceRequest.GET 
    ); 

    resourceRequest.setQueryParameter("params", "[" + $("#log").val() + ", " + $("#pass").val() + "]"); 
    resourceRequest.send().then(LoginSuccess, LoginFailure); 
} 


加えて、私がした瞬間に、その気づきましたアダプタコール、私はからコンソールでこのエラーが表示されますpreviewCo rdova.jsファイル。それはreq.urlが定義されていない変数のようになります。

C:\...\npm\node_modules\mfpdev-cli\node_modules\mdo-app-preview\lib\previewCordova.js:579 
    if(!req.url.startsWith('/')) { 
       ^
TypeError: undefined is not a function 
    at Server.<anonymous> (C:\..\npm\node_modules\mfpdev-cli\node_modules\mdo-app-preview\lib\previewCordova.js:579:17) 
    at Server.emit (events.js:110:17) 
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:491:12) 
    at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23) 
    at Socket.socketOnData (_http_server.js:343:22) 
    at Socket.emit (events.js:107:17) 
    at readableAddChunk (_stream_readable.js:163:16) 
    at Socket.Readable.push (_stream_readable.js:126:10) 
    at TCP.onread (net.js:538:20) 

答えて

0

私は問題を解決しました。 NodeJSの私のバージョンは、javascript String.prototype.startsWithメソッドをサポートしていません。 NodeJS

if (!String.prototype.startsWith) { 
    String.prototype.startsWith = function(searchString, position) { 
    position = position || 0; 
    return this.indexOf(searchString, position) === position; 
    }; 
} 

新しいバージョンがstartsWithメソッドを実装していたので、NodeJSアップグレードはあまりにも問題を解決する必要があります。だから私はpreviewCordova.jsファイルに、このメソッドを追加しました。

2

Mobilefirstアプリのプレビューは、ポート6015上で動作するプロキシ経由でMFPサーバに接続し、あなたが直面する行動は、ポートを行うにはその何も、通常ではありません。

ERR_CONNECTION_RESETエラーは、Mobilefirstサーバーからのブラウザ&によって発生します。

別のブラウザでリクエストしてみてください。また、ブラウジングデータ/キャッシュをクリアしてみてください。

+0

ok、私はmozillaでエラーが発生しましたが、アダプタの呼び出しはまだ動作しません。それは、モバイルファーストアプリプレビューで適切に開始されていないプロキシと言えますか?私は標準的なコマンドで起動しました:_mfpdev app preview android、ios、windows - type mbs --noprompt --pid_ – robr

+0

@robr [このチュートリアル](https://mobilefirstplatform.ibmcloud.com/tutorials/en) /foundation/8.0/application-development/using-mobilefirst-cli-to-manage-mobilefirst-artifacts/#preview-a-cordova-application)を使用して、プレビューモードでアプリを実行する方法を学習します。また、コードバでアプリのアダプタコールが正常に動作していることを確認してください。問題が解決しない場合は、プレビューモードでサーバーに電話をかけている間に発生したエラー応答を共有してください。 –

+0

私はここでストローで把握しているかもしれませんが、この種のエラーはローカルマシン上にファイアウォールルールが設定されている可能性があります - ローカルホストのポート6015に何も接続できないようにするルールがあります。これは単なる推測ですが、調べる価値のあるものです。 – patbarron

関連する問題