我正在使用Apache Camel将数据从CSV文件加载到Web服务。无论如何我可以显示请求和响应。以下是路线配置..
我从数组中拆分并聚合100个项目作为POST正文发送。
from(fileLocation)
.unmarshal().csv().bean(new CSVConverter(), "process")
.split(body())
.aggregate(constant(true), new GroupedBodyAggregationStrategy())
.completionSize(100)
.completionTimeout(1000)
.marshal().json(JsonLibrary.Jackson)
.setHeader("Authorization", simple(apiKEY))
.setHeader(Exchange.HTTP_METHOD, constant("POST"))
.setHeader(Exchange.HTTP_URI, simple(apiURL))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.to("https://serivceurl.com/abc");
请告诉我如何以上述路线显示请求和回复?
答案 0 :(得分:2)
您可以使用camel log组件来记录标头;属性和身体
前:
.to("log:DEBUG?showBody=true&showHeaders=true")
.to("https://serivceurl.com/abc");
.to("log:DEBUG?showBody=true&showHeaders=true")
有关更多选项,请参阅:https://camel.apache.org/log.html
如果您打算使用CXF调用Web服务,可以使用开箱即用的日志记录功能,如下所示,
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
答案 1 :(得分:0)
如果您查看org.apache.camel.component.http.HttpProducer
类,您会发现实现了一些日志记录。
try {
if (LOG.isDebugEnabled()) {
LOG.debug("Executing http {} method: {}", method.getName(), method.getURI());
}
int responseCode = executeMethod(method);
LOG.debug("Http responseCode: {}", responseCode);
因此,如果将日志记录框架(如logback)配置为正确的LoggingLevel,您将看到HTTP组件的确切功能。 如果您想自己记录,可以尝试使用 log组件或 log dsl ,如其他答案中所述。