Watch, Follow, &
Connect with Us

Welcome, Guest
Guest Settings
Help

Thread: Tokyo: SOAP and Multipart MIME messages (Attachments or not) - Bug?



Permlink Replies: 0 Threads: [ Previous | Next ]
WIS WIS

Posts: 3
Registered: 4/11/05
Tokyo: SOAP and Multipart MIME messages (Attachments or not) - Bug?
Click to report abuse...   Click to reply to this thread Reply
  Posted: Apr 14, 2017 1:14 AM
Hi!

I have several issues with Tokyo's SOAP implementation. We're implementing a Web service that's not open to the public. It is using Multipart MIME messages and Soap.SOAPAttach.pas fails to parse the responses properly.

There are two different issues:
A) Decoding the XML fails under some circumstances
B) EmbarcaderoSoapAttachment files left behind in %TEMP%
C) MIME Boundary recognition fails.

=============
A)
I can't yet tell exactly what happens, but some complex, UTF-8 encoded XML content fails to parse. I replaced the UTF-8 characters but still get illegal character error messages. I'll investiaget further after Easter.

The only workaround I found is to copy the whole SOAP-folder from Delphi Berlin over into my project and compile that one. Works perfectly.

=============
B)
In %TEMP%, a lot of EmbarcaderoSoapAttachment* files are left behind. It seems, that there's one file per Multipart MIME message. Maybe related to C)

C)
=============
Here's an excerpt from my log. Note that the MIME Boundary is recognized without dashes at the end.

2017-04-14 09:35:27 RCVD checkStatus --uuid:129a58e3-ccc8-4b37-9043-3399843e002e
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <root dot message at cxf dot apache dot org>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><checkStatusResponse xmlns="http://soap.elgaad.client.chipkarte.at" xmlns:ns2="http://exceptions.soap.base.client.chipkarte.at" xmlns:ns3="http://exceptions.soap.elgaad.client.chipkarte.at" xmlns:ns4="http://soap.base.client.chipkarte.at" xmlns:ns6="http://internal.soap.base.client.chipkarte.at" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"><return><ns4:key>SERVICESTATE</ns4:key><ns4:value>ONLINE</ns4:value></return></checkStatusResponse></soap:Body></soap:Envelope>
--uuid:129a58e3-ccc8-4b37-9043-3399843e002e--

Soap.SOAPAttach.pas has the function SameMimeBoundary that fails with this kind of request: It checks whether
--uuid:129a58e3-ccc8-4b37-9043-3399843e002e
equals
--uuid:129a58e3-ccc8-4b37-9043-3399843e002e-
(not the dash at the end, that's stored in the SFound variable).

Can anyone reproduce that?

If so, I'll open a QC report.

Cheers Stefan

Edited by: WIS WIS on Apr 14, 2017 1:14 AM

Edited by: WIS WIS on Apr 14, 2017 3:27 AM

Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02