无法启动地理空间分析

Cannot start Geospatial Analytics

我是 Bluemix I 的新手,正在试用 IoT 联网车辆教程 http://m2m.demos.ibm.com/dl/iot-connected-vehicle-tutorial.pdf

一切正常,直到我尝试通过访问我的应用程序的 link 来启动地理空间分析服务: http://lm-trafficsim.eu-gb.mybluemix.net/GeospatialService_start

大约 1 分钟后显示:

502 Bad Gateway: Registered endpoint failed to handle the request.

日志是:

[App/0]OUTAbout to call /GeospatialService_start
[App/0]OUTNO BODY
[App/0]OUTOptions prepared: { host: 'streams-broker.eu-gb.bluemix.net',
[App/0]OUT port: '443',
[App/0]OUT headers:
[App/0]OUT method: 'PUT',
[App/0]OUT path: '/jax-rs/geo/start/service_instances/538a9b3d-7160-4235-8e47-9be62d873842/service_bindings/2709488e-2310-4628-acef-df0313877bb5',
[App/0]OUT 'Content-Type': 'application/json',
[App/0]OUT { Authorization: 'Basic YWIxM2I3ODQtMzdmZi00ZGI2LWJkYTctYTgwYzc3MmMwNDY1OjA3YjU0NzMwLWYxM2MtNGYxYi1iZjkzLWY4ZWNlMDEwNDFhYg==',
[App/0]OUTWriting json:
[App/0]OUT 'Content-Length': 448 } }
[App/0]OUTDo the GeospatialService_start call
[App/0]OUT {
[App/0]OUT "mqtt_pw": "xxxxx",
[App/0]OUT "mqtt_uid": "xxxxx",
[App/0]OUT "mqtt_client_id_notify": "a:ybv0lr:geoNotify627",
[App/0]OUT "mqtt_client_id_input": "a:ybv0lr:geoInput393",
[App/0]OUT "mqtt_uri": "ybv0lr.messaging.internetofthings.ibmcloud.com:1883",
[App/0]OUT "device_id_attr_name": "id",
[App/0]OUT "mqtt_notify_topic": "iot-2/type/api/id/geospatial/cmd/geoAlert/fmt/json",
[App/0]OUT "mqtt_input_topics": "iot-2/type/vehicle/id/+/evt/telemetry/fmt/json",
[App/0]OUT "latitude_attr_name": "lat",
[App/0]OUT "longitude_attr_name": "lng"
[App/0]OUT}
[App/0]ERR{ [Error: socket hang up] code: 'ECONNRESET' }
[App/0]OUT[0mGET /GeospatialService_start [0m- [0m- ms - -[0m
[RTR/0]OUTlm-trafficsim.eu-gb.mybluemix.net - [12/05/2016:20:47:37 +0000] "GET /GeospatialService_start HTTP/1.1" 502 0 67 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" 159.122.215.10:19754 x_forwarded_for:"188.26.151.29" x_forwarded_proto:"http" vcap_request_id:b8812e5c-98dd-4d5a-6c2b-75780c6f0996 response_time:120.113068106 app_id:81052294-dfad-43c6-980f-1f058011632d x_global_transaction_id:"333879271"

我已经停止了我的防火墙,因为我在其他一些帖子中看到它可能会阻止访问该端口,但这并没有帮助。有什么想法是错误的吗?

与教程的唯一区别是我使用的地理空间分析计划是标准的,而不是免费的,因为标准是我唯一可以选择的计划。

您提到的 PDF 中的文章是旧的。我将解释代码有什么问题以及如何修复它。

示例 node.js 应用程序是在 Bluemix 中的地理空间分析服务处于测试阶段时编写的。应用程序使用 http 请求来调用服务的 REST APIs。当服务从测试版切换到生产版时,它需要使用 https 进行 REST API 访问。该服务不再支持使用 http 的 REST API 访问。这就是导致您的应用程序日志中出现 ECONNRESET 的原因。

要使现有代码正常工作,请在 app.js 源文件中将第 462 行更改为:

http = require('http'),

至:

https = require('https'),

并更改第 617 行:

var reqPut = http.request(options, function(res) {

至:

var reqPut = https.request(options, function(res) {

进行更改后,使用 cf push 在 Bluemix 中更新您的应用程序。当应用程序重新启动时,您应该会看到对 Geospatial Analytics REST APIs.

的成功调用

说了这么多,您还可以使用 http://www.ibm.com/developerworks/library/mo-connectedcar-app/index.html 上联网汽车演示文章的最终版本。这篇更新后的文章对 jazz.net 处的当前应用程序代码进行了 link 修正,此外还有一些其他增强和修正。