Tôi có một dịch vụ có hai hoạt động.Apache Camel có điều kiện định tuyến
RegisterUser
UpdateUser
Tôi có một rout lạc đà:
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
Trong đậu xử lý của tôi, khi tôi ghi rõ:
RegisterUser registerUser = exchange.getIn().getBody(RegisterUser.class);
tôi nhận được đối tượng người dùng đăng ký. Mọi thứ đều hoạt động tốt. Vấn đề là tôi muốn con lạc đà để định tuyến yêu cầu của tôi có điều kiện, cho ví dụ:
Nếu các hoạt động dịch vụ là RegisterUser
Tôi muốn để định tuyến thông điệp tới đậu cụ thể của tôi và nếu các hoạt động dịch vụ là UpdateUser
Tôi muốn để định tuyến thông điệp cho đậu khác.
Tôi đã cố sử dụng lạc đà xPath, nhưng dường như nó không hoạt động.
<camel:route id="myRoute">
<camel:from uri="cxf:bean:myListenerEndpoint?dataFormat=POJO&synchronous=true" />
<camel:choice>
<camel:when>
<camel:xpath>
//RegisterUser
</camel:xpath>
<camel:bean ref="processor" method="processMessage"/>
<camel:to uri="xslt:file:resources/service/2.0.0/UserRegistration.xsl"/>
</camel:when>
</camel:choice>
<camel:to uri="cxf:bean:myTargetEndpoint"/>
</camel:route>
Tôi đã tìm cách thiết lập con lạc đà để định tuyến đến các mục tiêu khác nhau nhưng không tìm thấy gì. Có lẽ ai đó biết nơi nào có thể là vấn đề?
Điều này rất hữu ích cho tôi. Chính xác những gì tôi cần. Cảm ơn bạn! :) –