|
Home > Archive > BizTalk Server Orchestration > July 2005 > Consuming WS from non-MS platforms
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Consuming WS from non-MS platforms
|
|
| andrew 2005-07-27, 7:50 am |
| 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 message
is always the same (as it should since BTS sends it) but the response message
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?
| |
| andrew 2005-07-27, 7:50 am |
| Reviewing my own post I saw some typos:
NS prefix specified in apache/unix response should read "EBB", in other
words the same as for the ASP.Net response. My mistake.
And for the record, I'm using orchestrations and not messaging-only (since
the latter won't work as stated in the docs). I've tried using the standard
XML receive pipeline and my own containing the standard dissassembler
component without referencing any schemas.
Running on:
Win2003 Standard with SP1
BTS2004 Standard with SP1
|
|
|
|
|