-1

私は worklight (6.0) チュートリアル (Insurance App) を勉強しており、「Lab6_Integrate_With_Worklight_Apdaters_Part1_HTTPAdapter.pdf」の章で、プロシージャーを作成して呼び出す方法について説明されています。ワークライト・コンソールの URL から json ファイルを直接取得することは正常に機能しますが、チュートリアルに従ってプロシージャーをビルドすると、(「ワークライト・プロシージャーの呼び出し」で) json ファイルを取得できず、エラーが発生します。

[ERROR   ] FWLSE0099E: An error occurred while invoking procedure  [project InsuranceProj]CustomerDataAdapter/HttpRequestFWLSE0100E:  parameters: [project InsuranceProj]{    "arr": [
      {
         "method": "get",
         "path": "\/apps\/services\/www\/Insurance\/mobilewebapp\/default\/json\/Customer.json",
         "returnedContentType": "json"
      }    ] } Failed to parse JSON string <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta content="en-us" name="DC.Language" />......    "

チュートリアルの正確な手順を実行していますが、何が問題なのかわかりません....この問題の解決策が見つかりません。ここでいくつかの回答が得られることを願っています

XML ファイル:

    <?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed Materials - Property of IBM
    5725-G92 (C) Copyright IBM Corp. 2011, 2013. All Rights Reserved.
    US Government Users Restricted Rights - Use, duplication or
    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
-->
<wl:adapter name="CustomerDataAdapter"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:wl="http://www.worklight.com/integration"
    xmlns:http="http://www.worklight.com/integration/http">

    <displayName>CustomerDataAdapter</displayName>
    <description>CustomerDataAdapter</description>
    <connectivity>
        <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>http</protocol>
            <domain>localhost</domain>
            <port>10080</port>  
            <!-- Following properties used by adapter's key manager for choosing specific certificate from key store  
            <sslCertificateAlias></sslCertificateAlias> 
            <sslCertificatePassword></sslCertificatePassword>
            -->
        </connectionPolicy>
        <loadConstraints maxConcurrentConnectionsPerNode="2" />
    </connectivity>

    <procedure name="getCustomerData">
        <displayName>GetCustomerData</displayName>
    </procedure>


</wl:adapter>

実装ファイル:

 function getCustomerData() {
    WL.Logger.debug("CustomerDataAdapter.getCustomerData procedure invoked");
    var input = {
            //headers : 'Content-Type: application/json',
            method : 'get',
            returnedContentType : 'json',
            path : "/apps/services/www/Insurance/mobilewebapp/default/json/Customer.json"
        };

        return WL.Server.invokeHttp(input);

}
4

2 に答える 2

1

アダプタ プロシージャがバックエンドに HTTP 要求を行うとき、JSON でエンコードされたデータ文字列が返されることを期待しています。表示されたデータのスニペットから、実際に返されるのは HTML フラグメントであるように見えます。バックエンド サービス プロバイダーから返されたデータを注意深く調べて、期待どおりのデータが得られているかどうかを判断することをお勧めします。

于 2013-11-10T17:59:51.620 に答える
1

アダプタは JSON を取得しようとしています

http://localhost:10080/apps/services/www/Insurance/mobilewebapp/default/json/Customer.json

これはプロジェクトへの参照です (かなり奇妙なことですが、ラボでのことだと思います...)

いずれにせよ、パスに要素がありません。そのはず:

path : "/Insurance/apps/services/www/Insurance/mobilewebapp/default/json/Customer.json"
于 2013-11-11T14:35:14.717 に答える