我有一个路由设置,它将xml文档发送到第三方的Web服务,工作正常,但它是Fire-and-Forget,现在我需要更改它来存储xml响应和http代码。
示例回复是:<Success>TRUE</Success>
以下是我的路线示例
from("activemq:test_queue")
.routeId("testRoute")
.bean( generateTestXMLBean )
.to( ExchangePattern.InOut, "http://www.example-webservice.com/xml" )
.process( storeResponseProcessor )
是否有可能编写一个单元测试,在路由将HttpResponse发送到MockEndpoint后嘲笑HttpResponse,以便可以处理响应?
我还认为答案会成为交易所的Out消息吗?
非常感谢任何帮助:)
答案 0 :(得分:0)
是的,您可以模拟HttpResponse。通常我喜欢使用另一条路线来“模拟”响应。例如:
from("activemq:test_queue")
.routeId("testRoute")
.bean( generateTestXMLBean )
.to( ExchangePattern.InOut, "direct:response" )
.process( storeResponseProcessor )
from("direct:response")
.routeId("testResponse")
.setBody(simple("<Success>TRUE</Success>"))
此外,您可以添加模拟端点。
from("direct:response")
.routeId("testResponse")
.to("mock:response")
.setBody(simple("<Success>TRUE</Success>"))
是的,你是对的,用InOut交换模式设置请求Camel会在Out Message中设置内容。