代码之家  ›  专栏  ›  技术社区  ›  jpsstack

尝试调用业务网络时出错。缺少必填字段

  •  0
  • jpsstack  · 技术社区  · 6 年前

    我想从Node RED向Composer REST服务器发送POST请求。

    错误 正在尝试调用业务网络。错误:没有来自任何同伴。回应从尝试的对等通信中出现错误:错误:2未知:执行链码时出错:事务返回失败:ValidationException:实例org.acme.shipping公司.易腐。加速阅读#c8c829bfd738d7ec63180c5225ae85bd77fad29b4ad9d8ad4bc40a14362f1060缺少所需的字段加速度

    操场/测试

    {
      "$class": "org.acme.shipping.perishable.AccelReading",
      "accel_x": 0,
      "accel_y": 0,
      "accel_z": 0,
      "latitude": "",
      "longitude": "",
      "readingTime": "",
      "shipment": "resource:org.acme.shipping.perishable.Shipment#4879"
    }
    

    节点红色URL

    http://...:31090/api/AccelReading?data=
    {"$class":"org.acme.shipping.perishable.AccelReading",
    "accel_x":23264,
    "accel_y":-20960,
    "accel_z":-2448,
    "readingTime":"2018-02-14T15:16:44.284Z",
    "latitude":"51",
    "longitude":"11",
    "shipment":"resource:org.acme.shipping.perishable.Shipment#320022000251363131363432"
    }
    

    有效载荷 enter image description here

    enter image description here

    回应

    {
        "error": {
            "statusCode": 422,
            "name": "ValidationError",
            "message": "The `AccelReading` instance is not valid. Details: `shipment` can't be blank (value: undefined).",
            "details": {
                "context": "AccelReading",
                "codes": {
                    "shipment": [
                        "presence"
                    ]
                },
                "messages": {
                    "shipment": [
                        "can't be blank"
                    ]
                }
            },
            "stack": "ValidationError: The `AccelReading` instance is not valid. Details: `shipment` can't be blank (value: undefined).\n    at /home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/dao.js:398:12\n    at AccelReading.<anonymous> (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/validations.js:578:11)\n    at AccelReading.next (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/hooks.js:93:12)\n    at AccelReading.<anonymous> (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/validations.js:575:23)\n    at AccelReading.trigger (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/hooks.js:83:12)\n    at AccelReading.Validatable.isValid (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/validations.js:541:8)\n    at /home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/dao.js:394:9\n    at doNotify (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at doNotify (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:155:49)\n    at Function.ObserverMixin._notifyBaseObservers (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:178:5)\n    at Function.ObserverMixin.notifyObserversOf (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:153:8)\n    at Function.ObserverMixin._notifyBaseObservers (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:176:15)\n    at Function.ObserverMixin.notifyObserversOf (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:153:8)\n    at Function.ObserverMixin._notifyBaseObservers (/home/composer/.npm-global/lib/node_modules/@ibmblockchain/composer-rest-server/node_modules/loopback-datasource-juggler/lib/observer.js:176:15)"
        }
    }
    

    邮递员/JSON

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Paul O'Mahony    6 年前

    问题是需要刷新Composer REST服务器,以反映Swagger中出现的所需字段。这意味着要删除REST服务器容器并使用内部192.x地址重新创建—Kubernetes中的步骤如下:

    bx cs cluster-config blockchain
    export KUBECONFIG=/Users/<name>/.bluemix/plugins/container-service/clusters/blockchain/kube-config-mil01-blockchain.yml
    ./delete/delete_composer-rest-server.sh
    ./create/create_composer-rest-server.sh --business-network-card admin@perishable-network
    

    附加一个屏幕截图的帖子应该是什么样子(刷新后)的 IoT business network referred to enter image description here