I need to pass photo and access token to back end REST service. Content type
is multipart/form-data I created html form and action is endpoint of esb And I have traced the traffic on the way to ESB [A] and going out from ESB [B]. It seems slide changes on those and I have no idea to fix this. When I send captured traffic on the way to ESB [A] its accepting by back end service. But traffic which going out by ESB[B] is not accepting by back end. Means not recognized the values in boundaries. It says “values empty”
Output on the way to ESB – when this FWD to backend it recognize ==========================================================================
POST /services/postPhotoToAlbumHttpSoap11Endpoint HTTP/1.1
Host: localhost:8280
Connection: keep-alive
Content-Length: 4623
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPSfmjvLcmpwvN6Gt
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: menuPanel=visible; menuPanelType=main
X-Forwarded-For: 0:0:0:0:0:0:0:1
------WebKitFormBoundaryPSfmjvLcmpwvN6Gt
Content-Disposition: form-data; name="accessToken"
CAACEdEose0cBALXnbsnFzenjs7ni1bkLYx0Tybmfd4G5CBWifG3VnP9xWQDNT52mCWZA2dTESXYc4aMNOZAHfNUNO0jxV5IZC9PQzjeWBZCHuOOexnzpt5BmNCeZAAFb3juHU2aZAZCNLozkOYcyKUj1IOl2jYzCpTjLdnynqhsDrZCknPC9670N0bOw1cIVUohLh9OBEjqyogZDZD
------WebKitFormBoundaryPSfmjvLcmpwvN6Gt
Content-Disposition: form-data; name="source"; filename="kdinesh_LThumb.jpg"
Content-Type: image/jpeg
ÿØÿà_
Output going OUT from ESB ==========================================================================
POST /10150897830516344/photos HTTP/1.1
Accept-Language: en-US,en;q=0.8
Cookie: menuPanel=visible; menuPanelType=main
Accept-Encoding: gzip,deflate,sdch
X-Forwarded-For: 0:0:0:0:0:0:0:1
Origin: null
Content-Type: multipart/form-data
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Cache-Control: max-age=0
Transfer-Encoding: chunked
Host: api.localhost
Connection: Keep-Alive
User-Agent: Synapse-PT-HttpComponents-NIO
X-Forwarded-For: 0:0:0:0:0:0:0:1, 127.0.0.1
1816
--MIMEBoundary_960dd4bb3066b1fff153bc3151e7776b65947ba8dd00425e
Content-Disposition: form-data; name="access_token"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
CAACEdEose0cBALXnbsnFzenjs7ni1bkLYx0Tybmfd4G5CBWifG3VnP9xWQDNT52mCWZA2dTESXYc4aMNOZAHfNUNO0jxV5IZC9PQzjeWBZCHuOOexnzpt5BmNCeZAAFb3juHU2aZAZCNLozkOYcyKUj1IOl2jYzCpTjLdnynqhsDrZCknPC9670N0bOw1cIVUohLh9OBEjqyogZDZD
--MIMEBoundary_960dd4bb3066b1fff153bc3151e7776b65947ba8dd00425e
Content-Disposition: form-data; name="source"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8KCwkMEQ8SEhEPERATFhwXExQaFRARGCEYGhwdHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABvAG8DASIAAhE --MIMEBoundary_960dd4bb3066b1fff153bc3151e7776b65947ba8dd00425e--
0
Proxy
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="postPhoto"
transports="https,http" statistics="disable" trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="accessToken" expression="//accessToken/text()" />
<property name="source" expression="//source/text()" />
<conn.init>
<accessToken>{$ctx:accessToken}</accessToken>
</conn.init>
<conn.postPhotoToAlbum>
<source>{$ctx:source}</source>
</conn.postPhotoToAlbum>
<respond></respond>
</inSequence>
<outSequence>
<log></log>
<send></send>
</outSequence>
</target>
</proxy>
Template ==========================================================================
<parameter name="source" description="The source" />
<sequence>
<property name="enableMTOM" value="true" scope="axis2" />
<header name="Content-Type" value="multipart/form-data" scope="transport" action="add" />
<property name="preserveProcessedHeaders" value="true" scope="default"/>
<property name="uri.var.source" expression="$func:source" />
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header></soapenv:Header>
<soapenv:Body>
<root>
<access_token>$1</access_token>
<source>$2</source>
</root>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg expression="get-property('uri.var.accessToken')" />
<arg expression="get-property('uri.var.source')" />
</args>
</payloadFactory>
<call>
<endpoint>
<http method="post" uri-template="http://localhost:8888/photos" />
</endpoint>
</call>
</sequence>
front end
<html>
<head><title>multipart/form-data - Client</title></head>
<body>
<form action="http:/localhost:7777/services/postPhotoToAlbumHttpSoap11Endpoint" method="POST" enctype="multipart/form-data">
url: <input type="text" name="accessToken" value=""><br/>
Profile pic :
<input type="file" name="source" size="40" multiple>
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>
=========================================== seems it is missing boundary when in leaving from ESB.. it that the problem?
Content-Type: multipart/form-data;
boundary=----WebKitFormBoundaryPSfmjvLcmpwvN6Gt
Pls find the behaviors of output based on axis to relay configuration
INPUT to ESB
POST /services/postPhotoToAlbumHttpSoap11Endpoint HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "urn:mediate"
Content-Length: 488
Host: localhost:8280
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
X-Forwarded-For: 127.0.0.1
<accessToken>CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD</accessToken>
<source></source>
output from ESB BinaryRelayBuilder<->ExpandingMessageFormatter
POST /10150897830516344/photos HTTP/1.1
Accept-Encoding: gzip,deflate
X-Forwarded-For: 127.0.0.1
Content-Type: multipart/form-data
SOAPAction: "urn:mediate"
Transfer-Encoding: chunked
Host: a.b.com:443
Connection: Keep-Alive
User-Agent: Synapse-PT-HttpComponents-NIO
X-Forwarded-For: 127.0.0.1, 127.0.0.1
201
CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD
0
BinaryRelayBuilder<-> MultipartFormDataFormatter
class="org.wso2.carbon.relay."/>
class="org.apache.axis2.transport.http."/>
fromESB
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91
Content-Disposition: form-data; name="access_token"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91
Content-Disposition: form-data; name="source"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91--
MultipartFormDataBuilder<-> ExpandingMessageFormatter
POST /10150897830516344/photos HTTP/1.1
Accept-Encoding: gzip,deflate
X-Forwarded-For: 127.0.0.1
Content-Type: multipart/form-data
SOAPAction: "urn:mediate"
Transfer-Encoding: chunked
Host: a.b.com:443
Connection: Keep-Alive
User-Agent: Synapse-PT-HttpComponents-NIO
X-Forwarded-For: 127.0.0.1, 127.0.0.1
201
CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD
0
MultipartFormDataBuilder <-> MultipartFormDataFormatter
POST /10150897830516344/photos HTTP/1.1
Accept-Encoding: gzip,deflate
X-Forwarded-For: 127.0.0.1
Content-Type: multipart/form-data
SOAPAction: urn:mediate
Transfer-Encoding: chunked
Host: a.b.com:443
Connection: Keep-Alive
User-Agent: Synapse-PT-HttpComponents-NIO
X-Forwarded-For: 127.0.0.1, 127.0.0.1
29c
--MIMEBoundary_588b3db44ce49dd52107589eea5fdcdc3d9a943eeeadcc5a
Content-Disposition: form-data; name="access_token"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD
--MIMEBoundary_588b3db44ce49dd52107589eea5fdcdc3d9a943eeeadcc5a
Content-Disposition: form-data; name="source"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
--MIMEBoundary_588b3db44ce49dd52107589eea5fdcdc3d9a943eeeadcc5a--
0