Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

The new HTTP endpoints are documented here.

...

Several parameters can be configured using a JMX console.

...

...

Name

Type

Description

Default

streamingEnabled

boolean

send client side requests using HTTP streaming

false

jettyConnectorClassName

String

Jetty connector class name

org.mortbay.nio.SelectChannelConnector

jettyThreadPoolSize

int

thread pool size for server side requests

255

maxConnectionsPerHost

int

max number of simultaneous connections to a given host

32

maxTotalConnections

int

max number of total simultaneous connections

256

...

 
 

XBean deployment

You can deploy Service Units containing a file named xbean.xml for activating consumer and provider endpoints.

This xml file should respect the given syntax, though this is a spring based xml configuration file from where all beans of class HttpEndpoint are retrieved.
See a full example here.  Note that you have to define the http namespace with

...

Any numbers of endpoints can be specified in the xbean.xml file.

...

Following is an example of an http consumer endpoint.

...

...

Name

Type

Description

Required

service

QName

the service name of the proxied endpoint

yes

endpoint

String

the endpoint name of the proxied endpoint

yes

interfaceName

QName

the interface name of the proxied endpoint

 

targetService

QName

the service name of the target endpoint

no (defaults to the service attribute)

targetEndpoint

String

the endpoint name of the target endpoint

no (defaults to the endpoint attribute)

targetInterfaceName

QName

the interface name of the target endpoint

 

role

String

must be 'consumer'

yes

locationURI

URI

the http url where this proxy endpoint will be exposed

yes

defaultMEP

URI

the default MEP uri to use

no

defaultOperation

QName

the default operation name to set on the JBI exchange. if not set, it defaults to the QName of the root xml element

no

soap

boolean

if set, the component will parse the soap requests and send the content into the NMR

no (defaults to false)

soapVersion

string

can be set to '1.1' to force the use of SOAP 1.1 messages

no

wsdlResource

Spring resource

if set, the wsdl will be retrieved from the given Spring resource

no

...

authMethod

string

HTTP authentication method to use, e.g. basic

no

...

...

The locationUri is usually something like *http://0.0.0.0:8192/jbi/Service*
The 0.0.0.0 IP address binds the server socket to all networks that the host
is in. If you use localhost, you will only be able to access the URL from
the same computer.

...

If you deploy your service unit to a ServiceMix Web application in Tomcat, the URLs of your services will be rewritten. For instance, a service with an XBean file specifying the service location URI:

...

... will be published at:

...

...

... instead.

The targetService, targetEndpoint and targetInterfaceName attributes can be used to specify the routing method to use (routing by interface, service or endpoint) and is also useful to allow several proxy endpoints to be created for the same JBI endpoint. For example to create an HTTP only endpoint and an HTTP+SOAP endpoint, both http endpoints will have the same targetEndpoint and targetService, but they must have different endpoint names.

...

Name

Type

Description

Required

service

QName

the service name of the exposed jbi endpoint

yes

endpoint

String

the endpoint name of the exposed jbi endpoint

yes

interfaceName

QName

the interface name of the exposed jbi endpoint

no

role

String

must be 'provider'

yes

locationURI

URI

the http url of the target service

yes

soap

boolean

if set, the component will parse the soap requests and send the content into the NMR

no (defaults to false)

soapAction

String

the SOAPAction header to send when invoking the web service

no (defaults to "")

wsdlResource

Spring resource

if set, the wsdl will be retrieved from the given Spring resource

no

...

The provider endpoint supports basic authentication.

...

Basic authentication credentials are passed in plain text across the network. Please use additional encryption for better security, or use a stronger mechanism other than basic authentication.

...

Basic authentication for a servicemix-http provider can be provided using the following syntaxsetup as follows:

...

... and for a servicemix-http consumer:

...

Name

Type

Description

Required

username

String

Authentication username

 

password

String

Authentication password

 

...

SSL configuration

Both consumer and provider endpoints support SSL.

...

Name

Type

Description

Required

keyPassword

String

key password

Defaults to keyStorePassword

keyStore

URL

url to access the key store

Yes (defaults to system property 'javax.net.ssl.keyStore')

keyStorePassword

String

the password to access the keystore

Yes (defaults to system property 'javax.net.ssl.keyStorePassword')

keyStoreType

String

type of the key store

JKS

trustStore

URL

url to access the trust store

 

trustStorePassword

String

the password to access the trust store

If trustStore is specified, defaults to system property 'javax.net.ssl.trustStorePassword'

trustStoreType

String

type of the trust store

JKS

protocol

String

standard name of the requested secure socket protocol

TLS

algorithm

String

algorithm used for key management

SunX509

wantClientAuth

boolean

configures the socket for consumer endpoints to accept client side authentication

false

needClientAuth

boolean

configures the socket for consumer endpoints to require client side authentication

false

...

Here is an example of a WSDL:

...

...

Lightweight mode

The servicemix-http component can also be configured in a spring/xbean configuration file, for use in an embedded ServiceMix.
Here is an example of such a configuration:

...

When using the servicemix.xml configuration file to create http endpoints, you must include the servicemix-http-xxx.jar in your classpath.
You will find this file inside the component installer (./components/servicemix-http-xxx.zip).
Failing this, an IllegalArgumentException will be thrown with the following message:
Component name: xxxxxx is bound to an object which is not a JBI component, it is of type: javax.xml.namespace.QName

...

You can also browse the list of available services on a given port:

...

...

WS-Addressing

When used on a SOAP consumer endpoint, servicemix-http handles the WS-Adressing Action and To headers.

...

The header uses the following syntax:

...

where:

  • Wiki Markup\[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/".unmigrated-wiki-markup
  • \[target namespace\] is the namespace of the interface.unmigrated-wiki-markup
  • \[interface name\] is the name of the interface. Wiki Markup\
  • [operation name\] is the name of the operation.

For example, the following header

...

...

will be used to address the JBI exchange with the following properties:

  • interface name: {http://example.com/stockquote\Image Removed}StockQuoteInterface
  • operation name: {http://example.com/stockquote\Image Removed}GetLastTradePrice

...

The header uses the following syntax:

...

...

where:

  • Wiki Markup\[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/".
  • Wiki Markup\[target namespace\] is the namespace of the interface. Wiki Markup
  • \[service name\] is the name of the service. Wiki Markup\
  • [endpoint name\] is the name of the endpoint.

For example, the following header

...

...

will be used to address the JBI exchange with the following properties:

...