...
You will need to compile this example first:
Code Block |
|
mvn install
|
To run the example on Apache ServiceMix 4.x or Apache Karaf 2.x
1) launch the server
Code Block |
|
karaf.bat
|
Note for Karaf 2.2.x:
a) edit the etc/jre.properties file to add the following packages to be exported
Code Block |
|
jre-1.6=, \
com.sun.org.apache.xerces.internal.dom, \
com.sun.org.apache.xerces.internal.jaxp, \
|
...
2) Add features required
Code Block |
|
features:addUrl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features
features:install war
features:install cxf
features:install camel-jaxb
features:install camel-blueprint
features:install camel-cxf
|
...
3) Deploy the example bundle
Code Block |
|
osgi:install -s mvn:org.apache.camel/camel-example-cxf-blueprint
|
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).
Code Block |
|
http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl
|
5) Start SOAPUI or use curl to send the request
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:
...
Code Block |
|
<xml version="1.0" encoding="UTF-8"?>
<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>cmuel...@apache.org</email>
<phone>0049 69 1234567</phone>
</ns2:inputReportIncident>
</soap:Body>
</soap:Envelope>
|
If you use curl, you need to save the upper message in a file (data.xml) first and use the blow command to send the message.
Code Block |
|
curl -X POST -T data.xml -H "Content-Type: text/xml" http://localhost:8181/cxf/camel-example-cxf-osgi/webservices/incident
|
The response message looks like this
Code Block |
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:outputReportIncident xmlns:ns2="http://reportincident.example.camel.apache.org">
<code>Accepted</code>
</ns2:outputReportIncident>
</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.
...