THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Wiki Markup |
---|
h2. CXF Bean Component (*2.0 or later*) The *cxfbean:* component allows other Camel endpoints to send exchange and invoke Web service bean objects. (*Currently, it only supports JAXRS, JAXWS(new to camel2.1) annotated service bean.*) *Note*: {{CxfBeanEndpoint}} is a {{ProcessorEndpoint}} so it has no consumers. It works similarly to a Bean component. h3. URI format {code} cxfbean:serviceBeanRef {code} Where *serviceBeanRef* is a registry key to look up the service bean object. If {{serviceBeanRef}} references a {{List}} object, elements of the {{List}} are the service bean objects accepted by the endpoint. h3. Options {div:class=confluenceTableSmall} || Name || Description || Example || Required? || Default Value || | {{cxfBeanBinding}} | CXF bean binding specified by the {{\#}} notation. The referenced object must be an instance of {{org.apache.camel.component.cxf.cxfbean.CxfBeanBinding}}. | {{cxfBinding=#bindingName}} | No | An instance of {{org.apache.camel.component.cxf.cxfbean.DefaultCxfBeanBinding}} | | {{bus}} | CXF bus reference specified by the {{\#}} notation. The referenced object must be an instance of {{org.apache.cxf.Bus}}. | {{bus=#busName}} | No | Default bus created by CXF Bus Factory | | {{headerFilterStrategy}} | Header filter strategy specified by the {{\#}} notation. The referenced object must be an instance of {{org.apache.camel.spi.HeaderFilterStrategy}}. | {{headerFilterStrategy=#strategyName}} | No | An instance of {{org.apache.camel.component.cxf.CxfHeaderFilterStrategy}} | | {{setDefaultBus}} | Will set the default bus when CXF endpoint create a bus by itself. | {{true}}, {{false}} | No | {{false}} | | {{populateFromClass}}\\ | Since 2.3, the wsdlLocation annotated in the POJO is ignored (by default) unless this option is set to {{false.}} Prior to 2.3, the wsdlLocation annotated in the POJO is always honored and it is not possible to ignore.\\ | {{true}}, {{false}} | No | {{true}} | {div} h3. Headers {div:class=confluenceTableSmall} || Name || Description || Type || Required? || Default Value || In/Out || Examples || | {{CamelHttpCharacterEncoding}} (before 2.0-m2: {{CamelCxfBeanCharacterEncoding}}) | Character encoding | {{String}} | No | None | In | ISO-8859-1 | | {{CamelContentType}} (before 2.0-m2: {{CamelCxfBeanContentType}}) | Content type | {{String}} | No | \**/*\* | In | {{text/xml}} | | CamelHttpBaseUri \\ (2.0-m3 and before: {{CamelCxfBeanRequestBasePath}}) | The value of this header will be set in the CXF message as the {{Message.BASE_PATH}} property. It is needed by CXF JAX-RS processing. Basically, it is the scheme, host and port portion of the request URI. | {{String}} | Yes | The Endpoint URI of the source endpoint in the Camel exchange | In | [http://localhost:9000] | | {{CamelHttpPath}} (before 2.0-m2: {{CamelCxfBeanRequestPat{}}}h) | Request URI's path | {{String}} | Yes | None | In | {{consumer/123}} | | {{CamelHttpMethod}} (before 2.0-m2: {{CamelCxfBeanVerb}}) | RESTful request verb | {{String}} | Yes | None | In | {{GET}}, {{PUT}}, {{POST}}, {{DELETE}} | | {{CamelHttpResponseCode}} | HTTP response code | {{Integer}} | No \\ | None | Out \\ | 200 \\ | {div} *Note: Currently, CXF Bean component has (only) been tested with Jetty HTTP component it can understand headers from Jetty HTTP component without requiring conversion.* h3. A Working Sample This sample shows how to create a route that starts a Jetty HTTP server. The route sends requests to a CXF Bean and invokes a JAXRS annotated service. First, create a route as follows. The {{from}} endpoint is a Jetty HTTP endpoint that is listening on port 9000. Notice that the {{matchOnUriPrefix}} option must be set to {{true}} because RESTful request URI will not match the endpoint's URI http://localhost:9000 exactly. {snippet:id=routeDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml} The {{to}} endpoint is a CXF Bean with bean name {{customerServiceBean}}. The name will be looked up from the registry. Next, we make sure our service bean is available in Spring registry. We create a bean definition in the Spring configuration. In this example, we create a List of service beans (of one element). We could have created just a single bean without a List. {snippet:id=beanDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml} That's it. Once the route is started, the web service is ready for business. A HTTP client can make a request and receive response. {snippet:id=clientInvocation|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/cxfbean/CxfBeanTest.java} |