首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apama HTTP客户端插件解析HTTP响应时出错

使用Apama HTTP客户端插件解析HTTP响应时出错
EN

Stack Overflow用户
提问于 2019-04-30 16:14:43
回答 1查看 256关注 0票数 2

我正在尝试使用Apama HTTP客户端插件对REST API进行HTTP调用。我可以向REST资源发送一个请求,但是在解析响应时,我得到了下面的错误。

代码语言:javascript
复制
WARN  [20176] - Failed to parse the event "`{contentType:application/json,sag.type:apamax.httpserversample.HTTPResponse,http:{headers:{contentLength:50,content-type:application/json,content-length:50},statusCode:200,method:POST,path:/rest/POC_422837/WS/provider/apamaTestConn,cookies:{},statusReason:OK}}{body:{status:Hello Apama. How are you doing?}}" 
   from httpClient due to the error: Unable to parse event apamax.httpserversample.HTTPResponse: 
   Unable to parse string from the map '{status:Hello Apama. How are you doing?}': 
   Invalid datatype, could not cast to string` 

YAML配置文件如下所示:

代码语言:javascript
复制
connectivityPlugins:
  HTTPClientGenericTransport:
    libraryName: connectivity-http-client
    class: HTTPClient

startChains:
  httpClient:
    - apama.eventMap
    - mapperCodec:
        apamax.httpserversample.HTTPRequest:
          towardsTransport:
            mapFrom:
              - metadata.http.path: payload.path
              - metadata.requestId: payload.id
              - metadata.http.method: payload.method
              - payload: payload.data
            defaultValue:
              - metadata.contentType: application/json
              - metadata.sag.type: HelloWorld
        apamax.httpserversample.HTTPResponse:
          towardsHost:
            mapFrom:
              - payload.body: payload
              - payload.id: metadata.requestId
        apamax.httpserversample.HTTPError:
          towardsHost:
            mapFrom:
              - payload.id: metadata.requestId
              - payload.code: metadata.http.statusCode
              - payload.message: metadata.http.statusReason
    - classifierCodec:
        rules:
          - apamax.httpserversample.HTTPResponse:
            - metadata.http.statusCode: 200
          - apamax.httpserversample.HTTPError:
            - metadata.http.statusCode:
    - jsonCodec:
        filterOnContentType: true
    - stringCodec
    - HTTPClientGenericTransport:
        host: ${CORRELATOR_HOST}
        port: ${CORRELATOR_PORT}

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 16:56:32

我认为问题在于您在配置中映射了

代码语言:javascript
复制
    apamax.httpserversample.HTTPResponse:
      towardsHost:
        mapFrom:
          - payload.body: payload
          - payload.id: metadata.requestId

响应HTTPResponse.body的有效负载。

但是,正如您从警告中看到的那样,有效负载实际上是一个地图,因此您需要这样做

- payload.body: payload.status

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55916583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档