07-27-05 12:50 PM
I'm trying to sort out a problem with consuming a web service running on a
unix/apache (request) and perl/soap::lite (response). If I implement a
ASP.Net ws that uses the same WSDL everything works out fine, but if I call
the unix/apache-based ws BTS never finds any message parts in the response.
I've used some http-proxies to examine the http-based traffic (between both
the ASP.Net ws and the unix/apache ws) and I can see that the request messag
e
is always the same (as it should since BTS sends it) but the response messag
e
differs a little in xml semantics.
This is the response message from the ASP.Net-based ws (shortened):
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.0
Date: Mon, 25 Jul 2005 09:07:09 GMT
X-Powered-By: ASP.NET
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 25 Jul 2005 09:07:09 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 408
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<UpdateResponse xmlns="EBB">
<Customer>
(message details removed)
</Customer>
</UpdateResponse>
</soap:Body>
</soap:Envelope>
And here is the response from the unix/apache ws:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Mon, 25 Jul 2005 08:56:19 GMT
Server: Apache/2.0.39 (Unix) mod_perl/1.99_04-dev Perl/v5.6.1
Content-Length: 792
Content-Type: text/xml
<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:apache="http://xml.apache.org/xml-soap"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<AMI:UpdateResponse xmlns:AMI="AMI">
<Customer>
(message details removed)
</Customer>
</AMI:UpdateResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
My guess is that because of the differences in use of namespace prefixes the
dissassemble component in BTS fails to find any root node with it's XPath
query and thereby reports that no message parts were found. This actually
means that BTS treats the whole response message as an envelope and submits
a
message containing no parts into the MsgBox.
Anyone have some ideas or suggestions?
[ Post a follow-up to this message ]
|