Apache Axis2's local transport implementation is used to make internal service calls and transfer data within the Axis2 instance. The following class implements the sender API:
org.apache.axis2.transport.local.NonBlockingLocalTransportSender
The transport does not have a receiver implementation as of now.
It provides an opportunity for fast in-VM service call.
Note
To use this transport, configure an endpoints with the local://
prefix. For example, to make an in-VM call to the HelloService, use local://HelloService
.
Configuring a Local Transport with WSO2 ESB
By default WSO2 ESB will ship with CarbonLocalTransportSender/CarbonLocalTransportReceiver which will use for Carbon components internal communication and this local transport is not suitable for ESB service invocation.
To enable local transport for service invocation, follow these steps.
1. In the carbon.xml file at location <ESB_HOME>/repository/conf, an endpoint is available as follows by default.
<ServerURL>local://services/</ServerURL>
Replace it with
<ServerURL>https://${carbon.local.ip}:${carbon.management.port}${carbon.context}/services/</ServerURL>
2. In the axis2.xml file at location <PRODUCT_HOME>/repository/conf/axis2/axis2.xml, there is a transport sender and receiver named 'local' specified as follows in two different places:
<transportReceiver name="local" class="org.wso2.carbon.core.transports.local.CarbonLocalTransportReceiver"/> <transportSender name="local" class="org.wso2.carbon.core.transports.local.CarbonLocalTransportSender"/>
Remove both these lines and add following line.
<transportSender name="local" class="org.apache.axis2.transport.local.NonBlockingLocalTransportSender"/>
For more information about transports, refer to Transports .