...
- JBI compliant Binding Component
- Usable in a lightweight mode in servicemix.xml configuration files
- SOAP 1.1 and 1.2 support
- MIME attachments
- Support for all MEPs as consumers or providers
- SSL support
- WS-Security support
- WS-Policy support
- WS-RM support
- WS-Addressing support
Maven Archetype
Two archetypes are available:
...
This archetype creates a CXF BC
...
Service Unit, including consumer and provider sample:
Code Block |
---|
mvn archetype:create \
-DarchetypeGroupId=org.apache.servicemix.tooling \
-DarchetypeArtifactId=servicemix-cxf-bc-consumer-service-unit
-DarchetypeVersion=2010.01 \
-DgroupId=your.group.id \
-DartifactId=your.artifact.id \
-Dversion=your-version
|
...
Once you've customized the service unit, simply install the SU:
Code Block |
---|
mvn archetype:create \
-DarchetypeGroupId=org.apache.servicemix.tooling \
-DarchetypeArtifactId=servicemix-cxf-bc-provider-service-unit \
-DarchetypeVersion=2010.01 \
-DgroupId=your.group.id \
-DartifactId=your.artifact.id \
-Dversion=your-version
|
...
Info |
---|
Remember that to be deployable in ServiceMix, the ServiceUnit has to be embedded in a Service Assembly: only the Service Assembly zip file can be deployed in ServiceMix. To add your SU in a SA, you need to define it in the dependency sets: Code Block |
---|
<dependency>
<groupId>your.group.id</groupId>
<artifactId>your.artifact.id</artifactId>
<version>your-version</version>
</dependency>
|
|
Endpoints Configuration
Consumer Endpoint
A consumer endpoint is a server-side CXF endpoint that will consume plain HTTP+SOAP requests and send them into the NMR to a given JBI endpoint, which is called the proxied endpoint.
Following is an example of an http HTTP consumer endpoint:
Code Block |
---|
|
<cxfbc:consumer wsdl="/wsdl/calculator.wsdl"
service="calculator:CalculatorService"
endpoint="CalculatorPort"
targetEndpoint="CalculatorPortProxy"
targetService="calculator:CalculatorService"
targetInterface="calculator:CalculatorPortType">
</cxfbc:consumer>
|
Info |
---|
title | Consumer endpoint attributesEndpoint Attributes |
---|
borderStyle | solidbgColor='lighblue' |
---|
|
Name | Type | Description | Required |
---|
wsdl | String | the wsdl will be retrieved from the given location | yes | service | QName | the service name of the proxied endpoint | no (required if the WSDL has more than one service) | endpoint | String | the endpoint name of the proxied endpoint | no (required if the specified service has more than one endpoint) | interfaceName | QName | the interface name of the proxied endpoint | no | 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 | no | busCfg | String | the spring configuration file used for cxf bus initialization | no | mtomEnabled | boolean | Enable MTOM / attachment support | no (defaults to false) | synchronous | boolean | Specifies if the endpoint expects send messageExchange by sendSync | no (defaults to false) | useJBIWrapper | boolean | Specifies if the endpoint expects messages to use the JBI wrapper for SOAP messages. | no (defaults to true,Ignore the value of useSOAPEnvelope if useJBIWrapper is true) | useSOAPEnvelope | boolean | Specifies if the endpoint expects soap messages when useJBIWrapper is false | no (defaults to true) | locationURI | String | Specifies the HTTP address to which requests are sent. This value will overide any value specified in the WSDL. | no (if provided the value will override the URL defined in the WSDL) | timeout | long | Specifies the interval for which the endpoint will wait for a response, This is specified in seconds. | no (defaults to 0 which means wait until response back) | x509 | boolean | Specifies if the endpoint use X.509 Certificate to do the authentication. | no (defaults to false), by default we delegate AA to SMX JAASAuthenticationService with ws-security UsernameToken, if we set this flag as true, we can check for X.509 certificate to run authentication with | delegateToJaas | boolean | Specifies if the endpoint delegate to JAASAuthenticationService to do the authentication. | no (defaults to true) If we only want ws-security get involved and don't want to delegate to SMX JAASAuthenticationService then set this flag as false | schemaValidationEnabled | boolean | Specifies if the endpoint use schemavalidation for the incoming/outgoing message. | no (defaults to false) | properties | Map | Sets arbitrary properties that are added to the CXF context at the Endpoint level. | no |
|
...
Code Block |
---|
|
<cxfbc:provider wsdl="/wsdl/calculator.wsdl"
locationURI="http://localhost:9001/bridgetest"
service="calculator:CalculatorService"
endpoint="CalculatorPortProxy"
interfaceName="calculator:CalculatorPortType">
</cxfbc:provider>
|
Info |
---|
title | Provider endpoint attributesEndpoint Attributes |
---|
borderStyle | solidbgColor='lighblue' |
---|
|
Name | Type | Description | Required |
---|
wsdl | String | the wsdl will be retrieved from the given location | yes | 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 | locationURI | URI | the http url of the target service | no (if provided the value will override the URL defined in the WSDL) | busCfg | String | the spring configuration file used for cxf bus initialization | no | mtomEnabled | boolean | Enable MTOM / attachment support | no (defaults to false) | useJBIWrapper | boolean | Specifies if the endpoint expects messages to use the JBI wrapper for SOAP messages. | no (defaults to true,Ignore the value of useSOAPEnvelope if useJBIWrapper is true) | useSOAPEnvelope | boolean | Specifies if the endpoint expects soap messages when useJBIWrapper is false | no (defaults to true) | schemaValidationEnabled | boolean | Specifies if the endpoint use schemavalidation for the incoming/outgoing message. | no (defaults to false) | properties | Map | Sets arbitrary properties that are added to the CXF context at the Endpoint level. | no |
|
...
Code Block |
---|
[target namespace][delimiter][interface name][delimiter][operation name]
|
where:
...
- \[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/".unmigrated-wiki-markup
- \[target namespace\] is the namespace of the interface.
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
...
Code Block |
---|
[target namespace][delimiter][service name][delimiter][endpoint name]
|
where:
Wiki Markup |
\[delimiter\] is ":" when the \ [target namespace\] is a URN, otherwise "/". Wiki Markup |
\[target namespace\] is the namespace of the interface.unmigrated-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
...