Transports can be configured and enabled in a global-level or a service-level. Globally enabled and configured transports effect all services deployed in a running Carbon instance. The following methods can be used to configure and enable transports globally.
WSO2 Carbon and all Carbon-based products are shipped with a configuration file named axis2.xml. This XML configuration file can be found at <CARBON_HOME>/repository/conf/axis2 directory. This is similar to the axis2.xml file that ships with "Apache Axis2" and "Apache Synapse." It contains the global configuration for WSO2 Carbon and the Carbon-based products. The axis2.xml configuration generally includes configuration details for modules, phases, handlers, global configuration parameters and transports. The elements <transportReceiver> and <transportSender> are used to configure transport listeners and senders respectively. In the axis2.xml file that comes with WSO2 Carbon or any Carbon-based product, some transports are already configured and enabled by default, including the HTTP and HTTPS transports.
The HTTP transport receiver configuration is something similar to the following as mentioned in the axis2.xml file.
<transportReceiver name="http" class="org.wso2.carbon.core.transports.http.HttpTransportListener"> <!-- Uncomment the following if you are deploying this within an application server. You need to specify the HTTP port of the application server --> <parameter name="port">9763</parameter> <!-- Uncomment the following to enable Apache2 mod_proxy. The port on the Apache server is 80 in this case. --> <!--<parameter name="proxyPort">80</parameter>--> </transportReceiver>
<transportResiever> attributes and elements:
In the above example, the parameter named "port" for the HTTP transport receiver was defined.
Similarly <transportSender> elements can be used to configure and enable transport senders in WSO2 Carbon. Given below is the HTTP transport sender configuration that comes with WSO2 Carbon by default along with other transports as mentioned in the axis2.xml file. It contains three parameters.
<transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter> <parameter name="Transfer-Encoding">chunked</parameter> <parameter name="OmitSOAP12Action">true</parameter> </transportSender>
The axis2.xml file will be loaded to memory only during server startup. Therefore any changes made to the file while the server is up and running will not be applied until the server is restarted.
Simply having <transportReceiver> and <transportSender> elements in the axis2.xml file causes those transports to be loaded and activated during server startup. Therefore any dependency JARs required by those transport implementations must be included in the server classpath to prevent the server from running into exceptions at startup. In addition to that, an inaccurate transport configuration (for example, a wrong parameter value) might cause the transport to be not enabled properly.
In addition to the above, transport receivers can be configured globally using the <CARBON_HOME>/repository/conf/tomcat/catalina-server.xml file. The default HTTP/S configuration specified in the catalina-server.xml file is given below:
Currently only the default servlet transports of Carbon can be configured using the catalina-server.xml file.
For more details on config parameters, refer to http://tomcat.apache.org/tomcat-7.0-doc/config/http.html
As an alternative to the traditional axis2.xml file-based configuration method, one might use the WSO2 Carbon Management Console to manage transport receivers and senders. Carbon Management Console loads transport configurations from the embedded registry and any changes made to the configurations through the UI will also be saved back into the registry.
When a transport is enabled from the management console, its configuration will be saved in the registry and loaded automatically during the next server startup. Transport configurations specified in axis2.xml get higher priority over configurations stored in the registry. Therefore if the same transport is enabled in axis2.xml as well as in the registry, transport configuration in axis2.xml will be loaded and activated. This method of configuration is mainly intended for relatively novice users. However, it is very useful even for advanced users because it enables one to try out different transport settings without having to restart the server many times.
Follow the instructions bellow to configure transports globally using the management console. You can configure only enabled transports.
1. Log on to the product's management console and select "Transports" to access "Transport Management."
2. The "Transport Management" page lists the available transport listeners and senders. From here, you can enable, disable and configure transport listeners and senders separately, without having to restart the server. Click on the "Configure" link of a certain transport listener/sender.
3. You will be taken to a page, where you can add and edit transport parameters. Do your configuration and click the "Update" button to save the changes. The updated settings will take effect immediately and the corresponding transport listener or sender will be restarted.
1. Enter the parameter's name and click the "Add" button. For example,
2. Edit the parameter's value.
You can edit the parameter's value right in the textarea.
The "Transport Management" page lists the available transport listeners and senders. From there, you can enable or disable transports.
Follow the instructions below to enable transports.
1. Click on the "Enable" link of a certain transport listener/sender in the "Transport Management" page.
2. You will be taken to a page where you can specify configuration parameters for the transport listener or the sender you want to enable. You will notice that all the required fields are already populated with a set of default values. Change the default values to suit the requirements of your deployment and click "Enable" to enable the transport listener/sender.
If any of the dependencies required to enable the transport listener or the sender are missing, the transport will not be enabled and you will be redirected back to the "Transport Management" page. You will notice that the "Enable" option is still available for that particular transport listener or sender, indicating that it has not been enabled. Therefore it is important that you put all the required JARs in the PRODUCT_HOME/repository/components/dropins directory before attempting to activate a transport listener or a sender.
Follow the instructions below to disable transports.
HTTP and HTTPS transports are configured in the axis2.xml. They are always loaded from the axis2.xml at the server startup. Also HTTP and HTTPS transports cannot be disabled since those transports are required by the Carbon management console and related administrative services. In case of HTTP/HTTPS transport listeners and senders, you will receive a warning dialog indicating that those transports cannot be disabled.
1. Click on the "Disable" link of a certain transport listener/sender in the "Transport Management" page.
2. Confirm your request to disable transport listener/sender by clicking "Yes."
Instructions to configure transports globally in WSO2 products.