我想从某个位置读取文件,提取文件名并使用文件名作为请求参数进行休息调用(GET)。文件名需要动态传递,因为每个文件都是唯一的。在完成教程后,我使用了 toD() 。下面提供了高级伪代码(我只对来自此调用的状态代码感兴趣。在此之后需要进一步的操作。)。
我现在使用 toD() 面临的问题是它在进行 Get 服务调用后进入了无限循环。
如何处理这个问题?感谢您的建议!
from("file:C:/inbound?delete=true&noop=true")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
String fileName = exchange.getIn().getHeader("CamelFileName").toString();
exchange.getIn().setHeader("fileName", fileName);
}
})
.setHeader(Exchange.HTTP_METHOD, simple("GET"))
.toD("http://localhost:8090/fileWatcher?fileName=${header.fileName}")
这是一个在端口 8090 上运行的简单 Get 端点模型:
@RequestMapping(value = "/fileWatcher", method = RequestMethod.GET)
public ResponseEntity<FileDetails> firstService(@RequestParam String fileName) {
return new ResponseEntity<>(HttpStatus.OK);
}