我是Camel的新手,正在尝试使用POST请求从Netty4路由获取响应。我想发送JSON并返回从正文中提取的字符串。
我的休息设置如下:
public class Server extends RouteBuilder {
@Override
public void configure() {
String listenAddress = "0.0.0.0";
int listenPort = 8080;
restConfiguration()
.component("netty4-http")
.scheme("http")
.host(listenAddress)
.dataFormatProperty("prettyPrint", "true")
.bindingMode(RestBindingMode.auto)
.port(listenPort);
rest("/")
.post()
.consumes("application/json; charset=UTF-8")
.to("direct:post");
}
}
在我的骆驼路线中,我想使用以下方式发回邮件:
@Component
public class RestRoute extends RouteBuilder {
@Autowired
CamelContext context;
@Override
public void configure() {
from("direct:post")
.log("New Request")
.streamCaching()
.setHeader(Exchange.HTTP_METHOD,constant(org.apache.camel.component.http4.HttpMethods.POST))
.setBody().jsonpath("$.Text") // extract text from JSON
.to("http4://0.0.0.0:8080?bridgeEndpoint=true");
但是我遇到以下错误:org.apache.camel.http.common.HttpOperationFailedException: HTTP operation failed invoking http://0.0.0.0:8080 with statusCode: 500
感谢您的帮助!
答案 0 :(得分:2)
哦,您不应该发送回该消息,这在路由结束时自动发生,然后将此时的消息用作其余消息的响应消息。
所以删除
.to("http4://0.0.0.0:8080?bridgeEndpoint=true");