[ https://issues.apache.org/jira/browse/AXIS2C-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609307#action_12609307 ]
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; to: 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="" string. > SOAP action not parsed correctly when it is contained in the content type > from a MTOM message > --------------------------------------------------------------------------------------------- > > Key: AXIS2C-1124 > URL: https://issues.apache.org/jira/browse/AXIS2C-1124 > 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 behavior. > 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="<[EMAIL > PROTECTED]>"; 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: <[EMAIL PROTECTED]>[\r][\n] > [\r][\n] > <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" > xmlns:urn="urn:fineline:order:service:1.0" > xmlns:urn1="urn:fineline:order:types:1.0">[\n] > <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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]