我正在测试这条骆驼路线:
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("GET"))
.to("http://127.0.0.1:8088/")
.to("mock:result");
...使用此模拟服务器:
mockServer = MockRestServiceServer.createServer(new RestTemplate());
mockServer.expect(
requestTo("http://127.0.0.1:8088/"))
.andExpect(method(HttpMethod.GET))
.andRespond(withStatus(HttpStatus.OK)
.contentType(MediaType.APPLICATION_JSON)
.body("")
);
...但收到:
I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
我明显缺少什么吗?我该如何找到原因?
答案 0 :(得分:1)
您不能使用MockRestServiceServer
。这不会启动真正的服务器,因此只能用于模拟对Spring RestTemplate的响应。 Apache Camel不使用RestTemplate发送请求,而是使用Apache HttpClient。
您可以:
使用模拟端点为您的http端点提供建议-首选方式。使用isMockEndpointsAndSkip
的示例,例如:camel mock - MockEndpoint.whenAnyExchangeReceived process method not execute
或在单元测试中启动任何完整的Http服务器-为此,您可以扩展HttpServerTestSupport
并包含一些准备好的方法-示例HttpBodyTest