| CXF OSGI Example using Blueprint |
| ================================ |
| |
| A simple example which receives web service calls (via a CXF consumer, using bean binding) |
| and writes these requests into the file system. It's not a very useful use case, but the goal |
| of this example is to show you how you can use the CXF consumer component in an OSGI |
| environment with the OSGI HTTP service. If your target container is Apache Karaf or Apache |
| ServiceMix, you can use PAX Web to setup and start an OSGI HTTP service. All Camel |
| bundles using a Camel CXF consumer can use this HTTP service without needing to start |
| individual Jetty instances. Another advantage is that all provided services can now share |
| the same port. |
| |
| You will need to compile this example first: |
| mvn install |
| |
| To run the example on Apache Karaf 2.3.1 or better |
| |
| 1) launch the server |
| karaf / karaf.bat |
| |
| 2) Add features required |
| features:chooseurl camel ${version} |
| features:install war |
| features:install cxf |
| features:install camel-jaxb |
| features:install camel-blueprint |
| features:install camel-cxf |
| |
| 3) Deploy the example |
| osgi:install -s mvn:org.apache.camel/camel-example-cxf-blueprint/${version} |
| |
| 4) Verify that your service is available using the following url in the browser. |
| We assume you're using Karaf's default PAX Web configuration which uses |
| port 8181 for http. If you would like to use another port or https, change the configuration in |
| ${KARAF_HOME}/etc/org.ops4j.pax.web.cfg. The immediate extension after the hostname and port ("cxf" in |
| the below URL) is configured via the org.apache.cxf.osgi.cfg file (Please see |
| http://team.ops4j.org/wiki//display/paxweb/Pax+Web for more information on PAX Web). |
| |
| http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl |
| |
| 5) Start SOAPUI (2.x or later) |
| Create a new project called camel-example-cxf-osgi |
| Point to the following url: http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl |
| Open the request 1 (under camel-example-cxf-blueprint --> ReportIncidentBinding --> ReportIncident) and copy/paste a SOAP |
| message generated by the unit test, for example: |
| |
| <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> |
| <soap:Header /> |
| <soap:Body> |
| <ns2:inputReportIncident xmlns:ns2="http://reportincident.example.camel.apache.org"> |
| <incidentId>111</incidentId> |
| <incidentDate>2011-03-05</incidentDate> |
| <givenName>Christian</givenName> |
| <familyName>Mueller</familyName> |
| <summary>Bla</summary> |
| <details>Bla bla</details> |
| <email>cmueller@apache.org</email> |
| <phone>0049 69 1234567</phone> |
| </ns2:inputReportIncident> |
| </soap:Body> |
| </soap:Envelope> |
| |
| 6) Check the file system |
| Check the folder "target/inbox/" in the Karaf base directory to see that a message has arrived. |
| |
| |
| This example is described in more detail at |
| http://camel.apache.org/cxf-example-osgi-blueprint.html |
| |
| If you hit any problems please let us know on the Camel Forums |
| http://camel.apache.org/discussion-forums.html |
| |
| Please help us make Apache Camel better - we appreciate any feedback you may |
| have. Enjoy! |
| |
| ------------------------ |
| The Camel Riders! |