How to setup VFS transport in WSO2 ESB with Samba
Posted: November 3, 2014 Filed under: SOA, WSO2 | Tags: CIFS, ESB, SAMBA, VFS, WSO2 Leave a commentEnvironment: WS02 ESB 4.8.1, Samba 4.1.11, Ubuntu 14.10
Install Samba:
apt-get update apt-get install samba
Configure two Samba shares:
/etc/samba/smb.conf
[SambaShareIn] path = /tmp/samba/in available = yes valid users = deep read only = no browseable = yes public = yes writable = yes guest ok = no [SambaShareOut] path = /tmp/samba/out available = yes valid users = deep read only = no browseable = yes public = yes writable = yes guest ok = no
Set passwd for user deep:
smbpasswd -a deep
Enable VFS transport ( transport sender and listener ) in ESB:
$ESB_HOME/repository/conf/axis2/axis2.xml
<transportReceiver name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportListener"/> <transportSender name="vfs" class="org.apache.synapse.transport.vfs.VFSTransportSender"/>
Now you can create a VFS enabled ESB proxy:
<?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="VFSSMB" transports="vfs" startOnLoad="true" trace="disable"> <description/> <target> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap12"/> </endpoint> <outSequence> <property name="transport.vfs.ReplyFileName" expression="fn:concat(fn:substring-after(get-property('MessageID'), 'urn:uuid:'), '.xml')" scope="transport"/> <property name="OUT_ONLY" value="true"/> <send> <endpoint> <address uri="vfs:smb://deep:deep@localhost/SambaShareOut/reply.xml"/> </endpoint> </send> </outSequence> </target> <parameter name="transport.PollInterval">5</parameter> <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter> <parameter name="transport.vfs.FileURI">vfs:smb://deep:deep@localhost/SambaShareIn</parameter> <parameter name="transport.vfs.MoveAfterProcess">vfs:smb://deep:deep@localhost/SambaShareOut</parameter> <parameter name="transport.vfs.MoveAfterFailure">vfs:smb://deep:deep@localhost/SambaShareOut</parameter> <parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter> <parameter name="transport.vfs.ContentType">text/xml</parameter> <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter> </proxy>
Now you can copy a SOAP message (test.xml) to location “smb://deep:deep@localhost/SambaShareIn” then ESB will poll for new files with extension “.xml” and send it to the give service. Response will by copy to the location “smb://deep:deep@localhost/SambaShareOut”
test.xml
<?xml version='1.0' encoding='UTF-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soapenv:Body> <m0:getQuote xmlns:m0="http://services.samples"> <m0:request> <m0:symbol>IBM</m0:symbol> </m0:request> </m0:getQuote> </soapenv:Body> </soapenv:Envelope>
Advertisements
How to set a Tomcat Filter in WSO2 Servers
Posted: November 2, 2014 Filed under: HOWTO, SOA, WSO2 | Tags: 4.2.0, AS, Carbon, DSS, ESB, IS, Tomcat, WSO2 Leave a commentCreate your filter Jar and update the Carbon Tomcat web.xml to pick then new filter.
$CARBON_HOME/repository/conf/tomcat/carbon/WEB-INF/web.xml
<!-- Filter implementation --> <filter> <filter-name>SetCustomCookie</filter-name> <filter-class>com.piedpiper.CustomCookie</filter-class> <init-param> <param-name>mode</param-name> <param-value>DENY</param-value> </init-param> </filter>
<!-- Filter maping --> <filter-mapping> <filter-name>SetCustomCookie</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>