Mobile First 7.1 SOAP 适配器未能读取响应

Posted

技术标签:

【中文标题】Mobile First 7.1 SOAP 适配器未能读取响应【英文标题】:Mobile First 7.1 SOAP Adapter failed to read response 【发布时间】:2016-02-16 06:19:24 【问题描述】:

我使用了 IBM MobileFirst Studio V7.1 - 服务发现向导选项,并从应用程序 WSDL 文件创建了一个 SOAP 适配器。服务发现过程在 MFP Studio 中正确创建 MobileFirst 适配器。 示例消息负载如下。

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fet="http://siebel.com/asi/Fetch Account Info">
      <soapenv:Body>
      <fet:ExecuteFetchAccountInfo_Input>
         <fet:Object_spcId>1-6U8KAR</fet:Object_spcId>
      </fet:ExecuteFetchAccountInfo_Input>
   </soapenv:Body>
</soapenv:Envelope>

现在,使用 MobileFirst Studio 中的适配器测试选项,正在对话窗口中传递以下 JSON 有效负载

参数:

"ExecuteFetchAccountInfo_Input":"Object_spcId":"1-6U8KAR"

但是当我调用适配器时出现以下错误


   "errors": [
      "Runtime: Failed to read the HTTP response to: \/eai_enu\/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute \njava.io.EOFException: Unexpected end of ZLIB input stream"
   ],
   "info": [
   ],
   "isSuccessful": false,
   "warnings": [
   ]

当我尝试检查日志文件时。我能够捕获请求和响应。

请求:

[2/16/16 11:27:10:997 IST] 000001ce com.worklight.integration.model.ProcedureInvoker             I FWLSE0318I: request:
/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<tns:ExecuteFetchAccountInfo_Input xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://siebel.com/asi/Fetch Account Info" xmlns:xsdLocal1="http://www.siebel.com/xml/Account%20IO" >
<tns:Object_spcId>1-6U8KAR</tns:Object_spcId>
</tns:ExecuteFetchAccountInfo_Input>
</soap:Body>
</soap:Envelope>

回复:

response:
OK
Date=Tue, 16 Feb 2016 05:34:35 GMT
Server=Microsoft-IIS/6.0
X-Powered-By=ASP.NET
_charset=UTF-8
cache-control=no-cache, must-revalidate, max-age=0
pragma=no-cache
transfer-encoding=Chunked
content-type=text/xml;charset=UTF-8
 [project IBMBankProject]
[2/16/16 11:27:11:000 IST] 000001ce om.worklight.integration.services.impl.DataAccessServiceImpl E FWLSE0099E: An error occurred while invoking procedure  [project IBMBankProject]SoapAdapter1/HttpRequestFWLSE0100E:  parameters: [project IBMBankProject]
Failed to read the HTTP response to: /eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute 
java.io.EOFException: Unexpected end of ZLIB input stream
FWLSE0101E: Caused by:  [project IBMBankProject]java.lang.RuntimeException: java.io.EOFException: Unexpected end of ZLIB input streamjava.lang.RuntimeException: Failed to read the HTTP response to: /eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute 
java.io.EOFException: Unexpected end of ZLIB input stream

通过查看响应,它会说如果 OK,但它无法读取响应。如果我需要设置一些额外的东西来阅读回复,请帮忙。

【问题讨论】:

尝试在 SOAPUI 或其他工具中测试您的 SOAP 请求。如果它在那里也失败了,那么问题可能出在后端而不是 MobileFirst。 我在 SOAP UI 中试过它工作正常。但是,当尝试通过 Mobile First 中的 SOAP 适配器进行测试时,它会失败 【参考方案1】:

原来这里有一个需要修复的缺陷。 APAR 编号为PI67417,可从Fix Central 下载。

应用 iFix 后,您还需要在适配器调用中添加“Accept-Encoding: identity”。那应该可以解决您的问题。如果没有,请告诉我。

【讨论】:

【参考方案2】:

由于这在 SOAP UI 中有效,但在适配器中失败,这可能表明存在产品缺陷。请打开一个 IBM PMR 并提供您的文件以供开发团队复制。

【讨论】:

以上是关于Mobile First 7.1 SOAP 适配器未能读取响应的主要内容,如果未能解决你的问题,请参考以下文章

从 6.1 迁移到 7.1 后,Iphone build 未连接到 Mobile First Server

IBM Mobile first 7.1 - 请建议如何为推送通知执行负载测试

Mobile first server(版本 7.1)所需的 websphere 应用程序服务器(网络部署)的最低版本是多少?

使用 IBM Mobile First Platform 7.1 和 Ionic 的适用于 Android 的 TouchID

如何在从 Mobile First 7.1 创建的设备上构建和部署 WP8 应用程序?

Mobile First Native Android - 适配器不返回任何结果