Watch, Follow, &
Connect with Us

Please visit our new home

Welcome, Guest
Guest Settings

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

Permlink Replies: 0 Threads: [ Previous | Next ]

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

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.

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.

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)

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=""><SOAP-ENV:Header xmlns:SOAP-ENV=""/><soap:Body><checkStatusResponse xmlns="" xmlns:ns2="" xmlns:ns3="" xmlns:ns4="" xmlns:ns6="" xmlns:xmime=""><return><ns4:key>SERVICESTATE</ns4:key><ns4:value>ONLINE</ns4:value></return></checkStatusResponse></soap:Body></soap:Envelope>

Soap.SOAPAttach.pas has the function SameMimeBoundary that fails with this kind of request: It checks whether
(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

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

Server Response from: ETNAJIVE02