...
Code Block |
---|
|
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<error>
<mes>$1</mes>
</error>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg value=" Your request did not return any results. Please enter a valid EIN and try again"/>
</args>
</payloadFactory> |
Example 7: Uploading a file to an HTTP endpoint via a multipart request
The below example configuration uses VFS to upload the file in the specified location to the given HTTP endpoint via a HTTP multipart request.
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="smooksample"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="vfs">
<target>
<inSequence>
<enrich>
<source clone="true" type="body"/>
<target property="originalBody" type="property"/>
</enrich>
<property name="messageType"
scope="axis2"
type="STRING"
value="multipart/form-data"/>
<payloadFactory media-type="xml">
<format>
<root xmlns="">
<customFieldOne>$1</customFieldOne>
<customFieldTwo>$2</customFieldTwo>
<file xmlns="http://org.apache.axis2/xsd/form-data"
charset="US-ASCII"
content-type="text/plain"
filename="$3"
name="file1">$4</file>
</root>
</format>
<args>
<arg value="Some value 1"/>
<arg value="Some value 2"/>
<arg evaluator="xml" expression="$trp:FILE_NAME"/>
<arg evaluator="xml" expression="$ctx:originalBody"/>
</args>
</payloadFactory>
<header name="Content-Type" scope="transport" value="multipart/form-data"/>
<property name="messageType"
scope="axis2"
type="STRING"
value="multipart/form-data"/>
<property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
<send>
<endpoint>
<address format="rest" uri="http://localhost:3000/upload/"/>
</endpoint>
</send>
</inSequence>
</target>
<parameter name="transport.PollInterval">5</parameter>
<parameter name="transport.vfs.FileURI">file:///<YOUR_FILE_LOCATION></parameter>
<parameter name="transport.vfs.ContentType">application/octet-stream</parameter>
<parameter name="transport.vfs.ActionAfterProcess">DELETE</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\..*</parameter>
<description/>
</proxy>
|
In the above example, the following property mediator configuration sets the message type as multipart/form-data
.
Code Block |
---|
|
<property name="messageType"
scope="axis2"
type="STRING"
value="multipart/form-data"/> |
The below file
parameter of the payload factory mediator defines the HTTP multipart request.
Code Block |
---|
|
<file xmlns="http://org.apache.axis2/xsd/form-data"
charset="US-ASCII"
content-type="text/plain"
filename="$3"
name="file1">$4</file> |
Also, the below property mediator configuration sets the content of the uploaded file.
Code Block |
---|
|
<header name="Content-Type" scope="transport" value="multipart/form-data"/>
<property name="messageType"
scope="axis2"
type="STRING"
value="multipart/form-data"/> |
Samples
The following samples demonstrate the use of the PayloadFactory mediator.
...