| Apache CXF Documentation > Index > Transports > HTTP Transport > Jetty Configuration |
This section is for configuring the Jetty runtime used for the CXF standalone model. The Jetty runtime is used by HTTP servers and HTTP clients using a decoupled endpoint. The Jetty runtime's thread pool, connector and handlers can be configured. You can also set a number of the security settings for an HTTP service provider through the Jetty runtime.
The elements used to configure the Jetty runtime are defined in the namespace http://cxf.apache.org/transports/http-jetty/configuration
. It is commonly refered to using the prefix httpj. In order to use the Jetty configuration elements you will need to add the lines shown below to the beans element of your endpoint's configuration file. In addition, you will need to add the configuration elements' namespace to the xsi:schemaLocation attribute.
<beans ...
xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration
...
xsi:schemaLocation="...
http://cxf.apache.org/transports/http-jetty/configuration
http://cxf.apache.org/schemas/configuration/http-jetty.xsd
...>
The httpj:engine-factory element is the root element used to configure the Jetty runtime used by an application. It has a single required attribute, bus, whose value is the name of the Bus that manages the Jetty instances being configured.
The value is typically cxf which is the name of the default Bus instance. |
| Element | Description |
|---|---|
| httpj:engine | Specifies the configuration for a particular Jetty runtime instance. |
| httpj:identifiedTLSServerParameters | Specifies a reusable set of properties for securing an HTTP server. It has a single attribute, id, that specifies a unique identifier by which the property set can be refered. |
| httpj:identifiedThreadingParameters | Specifies a reusable set of properties for controlling a Jetty instance's thread pool. It has a single attribute, id, that specifies a unique identifier by which the property set can be refered. |
The httpj:engine element is used to configure specific instances of the Jetty runtime. It has a single attribute, port, that specifies the number of the port being managed by the Jetty instance.
You can specify a value of 0 for the port attribute. Any threading properties specified in an httpj:engine element with its port attribute set to 0 are used as the configuration for all Jetty listeners that are not explicitly configured. |
The child elements used to provide the configuration properties are described below.
| Element | Description |
|---|---|
| httpj:tlsServerParameters | Specifies a set of properties for configuring the security used for the specific Jetty instance. |
| httpj:tlsServerParametersRef | Refers to a set of security properties defined by a identifiedTLSServerParameters element. The id attribute provides the id of the refered identifiedTLSServerParameters element. |
| httpj:threadingParameters | Specifies the size of the thread pool used by the specific Jetty instance. |
| httpj:threadingParametersRef | Refers to a set of properties defined by a identifiedThreadingParameters element. The id attribute provides the id of the refered identifiedThreadingParameters element. |
| httpj:connector | You can use spring beans syntax to instantiate a connector and set the connector's properties , this connector will be set to the Jetty server engine |
| httpj:handlers | You can use spring beans syntax to instantiate a Jetty handler list and set these handlers' properties , the jetty handlers will be set to the Jetty server engine |
| httpj:sessionSupport | If the value is true , the Jetty Engine will set up a session manager for the Jetty server engine to maintain the sessions. The default value of it is false. |
| httpj:reuseAddress | The the value is true, the Jetty Engine connector's socket will enable the SO_REUSEADDR flage. The default value of it is true. (This feature is available in CXF 2.0.3) |
You can configure the size of a Jetty instance's thread pool by either:
| The httpj:identifiedThreadingParameters element has a single child threadingParameters element. |
| Attribute | Description |
|---|---|
| minThreads | Specifies the minimum number of threads available to the Jetty instance for processing requests. |
| maxThreads | Specifies the maximum number of threads available to the Jetty instance for processing requests. |
The example below shows a configuration fragment that configures a Jetty instance on port number 9001.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:http="http://cxf.apache.org/transports/http/configuration" xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xsi:schemaLocation="http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/transports/http-jetty/configuration http://cxf.apache.org/schemas/configuration/http-jetty.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> ... <httpj:engine-factory bus="cxf"> <httpj:identifiedTLSServerParameters id="secure"> <sec:keyManagers keyPassword="password"> <sec:keyStore type="JKS" password="password" file="certs/cherry.jks"/> </sec:keyManagers> </httpj:identifiedTLSServerParameters> <httpj:engine port="9001"> <httpj:tlsServerParametersRef id="secure" /> <httpj:threadingParameters minThreads="5" maxThreads="15" /> <httpj:connector> <beans:bean class="org.mortbay.jetty.bio.SocketConnector"> <beans:property name = "port" value="9001" /> </beans:bean> </httpj:connector> <httpj:handlers> <beans:bean class="org.mortbay.jetty.handler.DefaultHandler"/> </httpj:handlers> <httpj:sessionSupport>true</hj:sessionSupport> </httpj:engine> </httpj:engine-factory> </beans>