axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tommy Odom (JIRA)" <>
Subject [jira] Commented: (AXIS2C-1124) SOAP action not parsed correctly when it is contained in the content type from a MTOM message
Date Mon, 30 Jun 2008 17:49:45 GMT


Tommy Odom commented on AXIS2C-1124:

I tested out the patch and it almost works, I had to make one minor change to get it to work
correctly.  However, I'm not exactly positive if it's the best way to solve the problem.

The current patch does not strip off enough characters because the action string when parsed
out is showing up as: \"NewOrder\"" 

There's actually an extra double quote at the end of the action string because it closes off
the type="" string.  To get around that in the patch, I just changed:

tmp2[strlen(tmp2) - 2] = AXIS2_ESC_NULL;


tmp2[strlen(tmp2) - 3] = AXIS2_ESC_NULL;

However, that will not work in a scenario where the action is not the last entry in the type=""

> SOAP action not parsed correctly when it is contained in the content type from a MTOM
> ---------------------------------------------------------------------------------------------
>                 Key: AXIS2C-1124
>                 URL:
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/transport, mtom
>    Affects Versions: 1.3.0
>            Reporter: Tommy Odom
>            Assignee: Supun Kamburugamuva
>         Attachments: http_transport_utils.c.patch
> I'm using soapui to communicate with WSO2 WSF PHP which uses axis2c (ChangeLog indicates
version 1.3.1) as the engine and communication works fine when not using MTOM but as soon
as I attempt to send a multi-part message, the operation is no longer found.  I traced it
down to a problem in axis2c that is returning the string: \"OperationName\" instead of: OperationName.
 I found that in the core/transport/http/util/http_transport_utils.c file, there is a method
named axis2_http_transport_utils_get_value_from_content_type which is looking for values that
start with a double quote to strip that off, but it isn't looking for an escaped double quote
to strip the escaped double quote off.
> As you can see from the sample message below, the action is included in the content-type
and is escaped with a backslash before the double quote.  I'm by no means an expert, but I
believe from looking at the examples on ws3's XOP specification that soapui is doing the correct
> Example content-type from w3's XOP TR:
> Content-Type: application/xop+xml; 
>     charset=UTF-8; 
>     type="application/soap+xml; action=\"ProcessData\""
> Sample message:
> POST /services/order/order_service.php HTTP/1.1[\r][\n]
> Content-Type: multipart/related; type="application/xop+xml"; start="<>";
start-info="application/soap+xml; action=\"NewOrder\""; boundary="----=_Part_17_13936350.1209567095547"[\r][\n]
> MIME-Version: 1.0[\r][\n]
> User-Agent: Jakarta Commons-HttpClient/3.0.1[\r][\n]
> Host: localhost[\r][\n]
> Content-Length: 3371[\r][\n]
> [\r][\n]
> [\r][\n]
> ------=_Part_17_13936350.1209567095547[\r][\n]
> Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml; action=\"NewOrder\""[\r][\n]
> Content-Transfer-Encoding: 8bit[\r][\n]
> Content-ID: <>[\r][\n]
> [\r][\n]
> <soap:Envelope xmlns:soap="" xmlns:urn="urn:fineline:order:service:1.0"
>    <soap:Header/>[\n]
>    <soap:Body>[\n]
>        ...
>    </soap:Body>[\n]
> </soap:Envelope>[\r][\n]
> ------=_Part_17_13936350.1209567095547[\r][\n]
> Content-Type: application/octet-stream[\r][\n]
> Content-Transfer-Encoding: binary[\r][\n]
> Content-ID: <123334421>[\r][\n]
> [\r][\n]
> <binary encoded data>

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message