我们有一个工作正常的WCF服务,有4个客户使用这项服务没有问题,但我有一个客户抱怨说,他不能再呼叫网络服务在过去几天。
自去年10月以来,我们没有改变任何事情,他也声称他没有改变任何事情。
正如我所说的,我有其他客户正在使用这个服务,我们也可以从SOAP UI调用该服务。我们甚至尝试在AWS中创建一个新的隔离计算机,并调用该服务,以确保它不是防火墙问题之类的问题,阻止了我们网络外部的通信。
从他发给我的堆栈跟踪中我可以看到,这个客户使用Sonic ESB来调用我们的服务。我真的不明白Sonic ESB是如何工作的,但我猜这个错误是由Sonic ESB引起的,而不是我的服务。它就像在他的应用程序和我的服务之间创建了一个“适配器”。
这让我得出了以下结论:
1)查看他的请求XML (他发给我的),我可以看到它与我提供的WSDL不匹配,例如:
(出于显而易见的原因,我更改了几个名称和值)
<CreateOrderGatewayCompanyName> --> This would be just CreateOrderGateway
<header> --> this header seems specific to Sonic ESB, nothing to do with us
<user>123414714</user>
<idProcess>5411251</idProcess>
<channel>EB</channel>
<ip>[ip number here]</ip>
<sessionId>1fd5a3f4d8f4dsa5f4dsaf4dsf1da5.xyz</sessionId>
</header>
<body>
<idCampania>xyz</idCampania> --> This would be "CampaignId"
...
<order>
...
<fecha>2016-12-21</fecha> --> This would be "Date"
...
</order>
</body>
</CreateOrderGatewayCompanyName>因此,我只能得出结论,在这个过程中的某个地方,ESB将把这个奇怪的XML转换成我的服务所期望的正确的SOAP请求格式。
2)查看他发给我的异常堆栈跟踪,我可以看到这个404错误:
<?xml version="1.0" encoding="UTF-8"?>
<exception xmlns="http://www.sonicsw.com/sonicesb/exception">
<message>Exception while retrieving soap envelope from response:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>
</message>
<class>com.sonicsw.xqimpl.invkimpl.wsif.providers.axissoap.SoapProviderInvocationException</class>
<detail/>
<stackTrace><![CDATA[org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
...问题是,他作为响应得到的404 HTML代码不是来自我的服务器,因为我们使用的是IIS 8.5,IIS的404错误页面看起来不像这个页面,HTML是不同的,消息也是不同的。它应该是这样的:
“404-找不到文件或目录。您正在查找的资源可能已被删除,已更改其名称,..“
那么,有没有人知道这个Sonic ESB实际上是否在应用程序中间创建了一个适配器或代理?如果有人已经经历过这样的错误,会是什么原因呢?我100%肯定我的服务运行良好。
https://stackoverflow.com/questions/41399519
复制相似问题