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