Tutorial-Example-ReportIncident-Part6Page edited by Claus IbsenChanges (2)
Full ContentPart 6... Continued from Part 5We continue from part 5 where we ended up with a complete solution using routes defined in Java code. In this last part of this tutorial we will define the route in XML instead.
The XML code below is included in the example in camel-example-report-incident in the directory src/main/resources/META-INF/spring/. The file is named camel-context.xml camel-config.xml <!-- here we have Spring XML file with all the namespaces here in the top of the XML file --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xmlns:cxf="http://camel.apache.org/schema/cxf" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd"> <!-- this is Spring XML example of the Camel route in the ReportIncidentRoutes class --> <!-- this is for demonstration purpose, to show how you can use Camel with XML DSL --> <!-- here we define the CXF endpoint, where {{port}} refers to a placeholder so we can define the port number in an external .properties file --> <cxf:cxfEndpoint id="reportIncident" address="http://localhost:{{port}}/camel-example-reportincident/webservices/incident" wsdlURL="etc/report_incident.wsdl" serviceClass="org.apache.camel.example.reportincident.ReportIncidentEndpoint"/> <!-- We use a bean to make the response bean that CXF expects --> <bean id="responseBean" class="org.apache.camel.example.reportincident.MyBean"/> <!-- this is the bean we use to generate the dynamic file name --> <bean id="filenameGenerator" class="org.apache.camel.example.reportincident.FilenameGenerator"/> <!-- this CamelContext contains the equivalent route from the Java DSL, but in XML so end users can see how to implement the route in both Java and XML --> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <!-- property which contains port number --> <!-- we have file:target/custom.properties which can be optional and override existing values, we use this for testing purpose --> <camel:propertyPlaceholder id="properties" location="classpath:incident.properties,file:target/custom.properties"/> <!-- this is the first route that uses CXF as web service --> <route> <from uri="cxf:bean:reportIncident"/> <convertBodyTo type="org.apache.camel.example.reportincident.InputReportIncident"/> <setHeader headerName="CamelFileName"> <method bean="filenameGenerator" method="generateFilename"/> </setHeader> <to uri="velocity:etc/MailBody.vm"/> <to uri="file://target/subfolder"/> <transform> <method bean="responseBean" method="getOK"/> </transform> </route> <!-- this is the 2nd route that pickup files and send them as emails --> <route> <from uri="file://target/subfolder"/> <setHeader headerName="subject"> <constant>new incident reported</constant> </setHeader> <to uri="smtp://someone@localhost?password=secret&to=incid...@mycompany.com"/> </route> </camelContext> </beans> After 5 years we are at the endSo finally we managed to add part 6 to this tutorial. Yes we have used a lot of time to write this tutorial, so we hope that it helps you ride the Camel. Links
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > Tutorial-Example-ReportIncident-Part6 confluence
- [CONF] Apache Camel > Tutorial-Example-ReportIncident-P... confluence
- [CONF] Apache Camel > Tutorial-Example-ReportIncident-P... confluence
- [CONF] Apache Camel > Tutorial-Example-ReportIncident-P... confluence