Camel 消息中的setFault()方法不再存在

dkqlctbz  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(173)

你好,我需要从java 8升级到java 17,也需要升级到apache camel的最新版本,我有一段代码,其中包含了setFault方法,但在apache camel的最新版本中已经不存在了。有人知道我可以用什么来替换它吗?

protected void process(Exchange exchange, RequestContext<?, ?> ctx, Exception e, AlarmType alarm) throws Exception {
        int errorCode = getErrorCode(exchange);
        ctx.setResponseErrorCode(errorCode);

        Message message = exchange.getMessage();
        message.setHeader(Exchange.HTTP_METHOD, HttpMethods.POST);
        message.setHeader(Exchange.HTTP_PROTOCOL_VERSION, "1.1");
        message.setHeader(Exchange.HTTP_RESPONSE_CODE, getErrorCode(exchange));
        message.setHeader("httpReasonPhrase", getErrorMessage(exchange));
        message.setBody(getErrorBody(exchange));
        message.setFault(ctx.isCXF());
    }
8nuwlpux

8nuwlpux1#

从Camel 3.x及更高版本(《Camel 2.x到3.0迁移指南》):
fault API已从org.apache.camel.Message中删除,因为它仅用于SOAP-WS错误消息。SOAP-WS的camel-cxf和camel-spring-ws组件已修改为支持来自其组件的错误消息。handleFault选项也已删除,您现在需要将其作为camel-cxf或camel-spring-ws上的端点或组件选项打开
所以你应该可以安全地把这条线去掉。

相关问题