我有以下Apache驼峰来发布一个URL。
.setHeader(HTTP_PATH,simple("/product-catalog/insert"))
.setHeader(HTTP_METHOD,constant("POST"))
.setHeader(CONTENT_TYPE, constant("application/json"))
.setBody(constant(""))
.process(new ProductProcessor())
.marshal().json(JsonLibrary.Jackson)
.to("{{products.endpoint}}?bridgeEndpoint=true")
.unmarshal().string()
.setHeader("CamelJacksonUnmarshalType", constant(ProductInsertResponse.class.getName()))
.unmarshal(ProductResponse)
.process(new ProductResponseProcessor())
在此次通话后,我想在处理器上检查此新产品的产品代码是否正确,如下所示:
public class ProductResponseProcessor implements Processor
{
@Override
public void process(Exchange exchange) throws Exception {
ProductInsertResponse response = (ProductInsertResponse) exchange.getIn().getBody();
if(response.productCode().equals("0")){
// The product code is not correct
// And I would like to return a JSON to the browser with the following format
// {"response":"Error","errorString":"Error insert product" ,"errorCode":"0"}
}
}
}
如果代码不是0,我想在apache camel流程中继续我的其他任务。我不知道如何切断这一点上的路由,并在我们的产品代码等于0的情况下将JSON对象发送到浏览器。
非常感谢你。
答案 0 :(得分:0)
您有多种不同的选择。
简单的:
从您的处理器中抛出异常,然后在onException
中的路径中捕获异常,或者使用驼峰doTry
在处理器中设置特殊的Exchange属性,然后在路由中对其进行分析,并根据需要分配流量。 ...