Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The transport receiver implementation of the HTTP transport is available in the Carbon core component. The transport sender implementation comes from the Apache Axis2 transport moduleTomcat http connector. This transport is shipped with WSO2 Carbon and all WSO2 Carbon-based products, which use this transport as the default transport, except WSO2 ESB. The two classes which implement the listener and sender APIs are org.wso2.carbon.core.transports.http.HttpTransportListener and  By default, we use non-blocking Tomcat Java connector, org.apache.axis2coyote.transporthttp11.httpHttp11NioProtocol.CommonsHTTPTransportSender respectively.

Info
  • This is a non-blocking HTTP transport implementation, meaning which means that I/O the threads does not get blocked while received messages are processed completely by the underlying Axis2 engine.
  • Although the Although the axis2.xml file contains configurations for HTTP/S transports by default, they are not used by WSO2 products. Instead, the products use the HTTP/S transport configurations in Tomcat-level; therefore, changing the HTTP/S configurations in the the axis2.xml file file has no effect.
Tip

In the transport parameter tables, the literals displayed in italic mode italics under the "Possible Values" column should be considered as fixed literal constant values. Those values can be directly put in into the transport configurations.

Transport

...

Connector Parameters

Parameter Name

Description

Required

Possible Values

Default Value

port

The port number on which this transport receiver should listen for incoming messages.

Yes

A positive integer less than 65535

 

proxyPort

When used, this transport listener will accept messages arriving through a HTTP proxy server which listens on the specified proxy port. Apache mod_proxy should be enabled in the proxy server. All the WSDLs generated will contain the proxy port value as the listener port.

No

A positive integer less than 65535

 

When using org.wso2.carbon.core.transports.http.HttpTransportListener as the transport receiver implementation, HTTP servlet transport should be configured in the $PRODUCT_HOME<PRODUCT_HOME>/repository/conf/transportstomcat/catalina-server.xml file file. The transport class that should be specified in the transportsthe catalina-server.xml file  file is as follows:

Code Block
<Connector protocol="org.wso2apache.carboncoyote.server.transports.http.HttpTransport

...

http11.Http11NioProtocol"/>
trueNo

Parameter Name

Description

Required

Possible Values

Default Value

port

The port over which this transport receiver listens for
incoming messages.

YesA positive integer less than 65535

9763 for HTTP Connector

9443 for HTTPS Connector

redirectPortIf this Connector is supporting non-SSL requests, and a request is received for which a matching <security-constraint> requires SSL transport, Catalina will automatically redirect the request to the port number specified here.A positive integer less than 655359443
bindOnInitControls when the socket used by the connector is bound. By default it is bound when the connector is initiated and unbound when the connector is destroyed. If set to false, the socket will be bound when the connector is started and unbound when it is stopped. false

proxyPort

When used, this transport listener will accept messages
arriving through a HTTP proxy server which listens on the
specified proxy port. Apache mod_proxy should be enabled
on the proxy server. All the WSDLs generated will contain the
proxy port value as the listener port.No

A positive integer less than 65535

 

maxHttpHeaderSize

The maximum size of the HTTP request and response header
in bytes.No

A positive integer

4096

acceptorThreadCountThe number of threads to be used to accept connections. Increase this value on a multi CPU machine, although you would never really need more than 2. Also, with a lot of non keep alive connections, you might want to increase this value as well.  2

maxThreads

The maximum number of worker threads created by the receiver
to handle incoming requests. This parameter largely determines
the number of concurrent connections that can be handled by
the transport.

No

A positive integer

40

minSpareThreadsThe minimum number of threads always kept running. If not specified, the default will be used. 50

enableLookups

Use this parameter to enable DNS lookups in order to return the
actual host name of the remote client. Disabling DNS lookups
at transport level generally improves performance.No. By default, DNS lookups are disabled.

true, false true

false

disableUploadTimeout

This flag allows the servlet container to use a different, longer
connection timeout while a servlet is being executed, which in
the end allows either the servlet a longer amount of time to
complete its execution, or a longer timeout during data upload.

Notrue, false

true

connectionUploadTimeoutSpecifies the timeout, in milliseconds, to use while a data upload is in progress. This only takes effect if disableUploadTimeout is set to false.  

clientAuth

Set to true if you want the SSL stack to require a valid certificate
chain from the client before accepting a connection. Set to want
if you want the SSL stack to request a client Certificate, but not
fail if one is not present. A false value (which is the default) will
not require a certificate chain unless the client requests a resource
protected by a security constraint that uses CLIENT-CERT
authentication.No

true, false, want

false

maxKeepAliveRequests

The maximum number of HTTP requests which can be pipelined
until the connection is closed by the server. Setting this attribute
to 1 will disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive
and pipelining. Setting this to -1 will allow an unlimited amount of
pipelined or keep-alive HTTP requests.

No

-1 or any positive integer

100

acceptCount

The maximum queue length for incoming connection requests when
all possible request processing threads are in use. Any requests
received when the queue is full will be refused.No

A positive integer

10

serverOverrides the Server header for the http response. If set, the value for this attribute overrides the Tomcat default and any Server header set by a web application. If not set, any value specified by the application is used.

compression

Use this parameter to enable content compression and save server
bandwidth.

Any stringWSO2 Carbon Server

compression

The Connector may use HTTP/1.1 GZIP compression in an attempt to save server bandwidth.

The acceptable values for the parameter is "off" (disable compression), "on" (allow compression, which causes text data to be compressed), "force" (forces compression in all cases), or a numerical integer value (which is equivalent to "on", but specifies the minimum amount of data before the output is compressed). If the content-length is not known and compression is set to "on" or more aggressive, the output will also be compressed. If not specified, this attribute is set to "off".

on, off, force

off

compressionMinSize

If compression is set to "on" then this attribute may be used to specify the minimum amount of data before the output is compressed.

A positive integer2048

noCompressionUserAgents

Indicate a list of regular expressions matching user-agents of HTTP
clients for which compression should not be used, because these
clients, although they do advertise support for the feature, have a
broken implementation.No

A comma separated list of
regular expressions

empty string

compressableMimeType

Use this parameter to indicate a list of MIME types for which HTTP
compression may be used.

No

A comma separated list of
valid mime types

text/html, text
/xml, text/plain

URIEncodingThis specifies the character encoding used to decode the URI bytes, after %xx decoding the URL.URI encoding Character set nameISO-8859-1

This servlet transport implementation can be further tuned up using the following parameters.

This is only a subset of all the supported parameters. The servlet HTTP transport uses the the org.apache.catalina.connector.Connector implementation  implementation from Apache Tomcat. So the servlet HTTP transport actually accepts any parameter accepted by the connector implementation. Please refer to For a complete list of supported parameters, see Apache Tomcat's connector configuration reference (http://tomcat.apache.org/tomcat-5.5-doc/config/http.html) for more information and a complete list of supported parameters.

...

Transport Sender Parameters

Parameter Name

Description

RequiredRequried

Possible Values

Default Value

PROTOCOL

The version of HTTP protocol to be used for outgoing messages.

No

HTTP/1.0, HTTP/1.1

HTTP/1.1

Transfer-Encoding

Effective only when the HTTP version is 1.1 (i.e. , the value of the PROTOCOL parameter should be HTTP/1.1). Use this parameter to enable chunking support for the transport sender.

No

chunked

Not Chunked

SocketTimeout

The socket timeout value in milliseconds, for out bound connections.

No

A positive integer

60000 ms

ConnectionTimeout

The connection timeout value in milliseconds, for out bound connections.

No

A positive integer

60000 ms

OmitSOAP12Action

Set this parameter to "true" if you need to disable the SOAPAction soapaction for SOAP 1.2 messages.

No

true, false

false