HTTP 代码:抛出 100 但未映射(调用 api-rest JAVA)

问题描述 投票:0回答:0

我正在调用一个用 JAVA 编写的 API-REST 服务,但出于某种奇怪的原因,它“有时”会抛出一个未映射的 HTTP 代码,所以我不明白问题出在哪里。

如果我运行相同的请求但在 POSTMAN 中我总是得到所需的 http 代码但是如果我从应用程序调用它有时会失败。

这是我用JAVA写的代码:

@Component
public class FessCalculator implements Processor {
    private static Map<String, Object> headers;
    private static int responseStatusCode = 200;

    @Override
    public void process(Exchange exchange) throws Exception {
        String message = (String) exchange.getIn().getHeader("exception.message");
        String supplierName = exchange.getProperty("supplierName",String.class);
        Map<String, companyFess> output = new HashMap<>();
        companyFess companyFess = new companyFess();
        if (StringUtils.isBlank(message)) {
            Map<String, Object> map = exchange.getIn().getBody(Map.class);
            String ebsResult = (String) map.get("x_msg_data");
            if (StringUtils.isBlank(ebsResult)) {
                companyFess.setFees((List<TaxLineOut>) map.get("lines_tab"));
                output.put(supplierName, companyFess);
            } else {
                /*  API executed with errors. Fees will be empty  */
                companyFess.setMessage(ebsResult);
                companyFess.setFees(new ArrayList<TaxLineOut>());
                output.put(supplierName, companyFess);
            }
        } else {
            /* API could not be executed. Fees will be null */
            companyFess.setMessage("API Could not
 be executed");
            companyFess.setFees(new ArrayList<TaxLineOut>());
            output.put(supplierName, companyFess);
        }
        companyFessResponse response = new companyFessResponse();
        if (output == null || output.isEmpty()) {
            responseStatusCode = 400;
        } else {
            response.setCompanyFees(output);
            for (companyFess companyFess1 : output.values()) {
                if (StringUtils.isNotBlank(companyFess1.getMessage())) {
                    response.setStatus(500);
                }
            }
        }
        exchange.getOut().setBody(response);
        headers = exchange.getIn().getHeaders();
        headers.put(Exchange.HTTP_RESPONSE_CODE, responseStatusCode);
        exchange.getOut().setHeaders(headers);
    }
}

正在调用的应用程序中显示的错误是:

8444-[2023-02-02 19:44:17] feesCalculator.CRITICAL:“feesCalculator API 异常:\”{\n \\“状态\\”:200,\n \\“companyTaxes\\”:{ \n \\"公司\\" : {\n \\"消息\\" : \\"\\",\n \\"税收\\" : [ {\n \\"tax_regime_code\\" : \\"USA-VAT\\",\n \\"tax\\" : \\"STATE\\",\n \\"tax_rate_id\\" : 12500,\n \\"tax_rate_code\\" : \\"STATE NGRP 13M\\",\n \\"tax_rate_name\\" : \\"VAT RAT BSAS\\",\n \\"operand\\" : 1.1,\n \\"amount\\ " : 11499.92\n }, {\n \\"tax_regime_code\\" : \\"USA-VAT\\",\n \\"tax\\" : \\"USCF\\",\n \\ “tax_rate_id\\”:13779,\n\\“tax_rate_code\\”:\\“GRP07_IIBB_CF\\”,\n\\“tax_rate_name\\”:\\“VAT RAT USA Res 364 AGIP 1%\\” ,\n \\"operand\\" : 1,\n \\"amount\\" : 10454.49\n }, {\n \\"tax_regime_code\\" : \\"USA-VAT\\",\ n \\"tax\\" : \\"USMI\\",\n \\"tax_rate_id\\" : 13881,\n \\"tax_rate_code\\" : \\"USMI CONV\\",\n \\"塔x_rate_name\\" : \\"VAT RAT USA\\",\n \\"operand\\" : 3.31,\n \\"amount\\" : 0\n }, {\n \\"tax_regime_code\ \" : \\"USA-VAT\\",\n \\"tax\\" : \\"USA-VAT\\",\n \\"tax_rate_id\\" : 13710,\n \\" tax_rate_code\\" : \\"USA-VAT CM 2,5\\",\n \\"tax_rate_name\\" : \\"VAT RAT Tucum\\",\n \\"operand\\" : 2.5 ,\n \\"金额\\" : 501.81\n }, {\n \\"tax_regime_code\\" : \\"USA-VAT\\",\n \\"tax\\" : \\" USFO\\",\n \\"tax_rate_id\\" : 12035,\n \\"tax_rate_code\\" : \\"USFO CONV\\",\n \\"tax_rate_name\\" : \\"VAT RAT Formos\\",\n \\"operand\\" : 1,\n \\"amount\\" : 0\n }, {\n \\"tax_regime_code\\" : \\"USA-VAT \\",\n \\"tax\\" : \\"VAT\\",\n \\"tax_rate_id\\" : 11756,\n \\"tax_rate_code\\" : \\"VAT 21% PP BA\\",\n \\"tax_rate_name\\" : \\"VAT 21%\\",\n \\"操作数\\" : 21,\n \\"金额\\" : 47326\ n }, {\n \\"tax_regime_code\ \" : \\"USA-VAT\\",\n \\"tax\\" : \\"USER\\",\n \\"tax_rate_id\\" : 12200,\n \\"tax_rate_code\ \" : \\"USER 3%\\",\n \\"tax_rate_name\\" : \\"VAT Washington\\",\n \\"operand\\" : 3,\n \\"amount \\" : 0\n }, {\n \\"tax_regime_code\\" : \\"USA-VAT\\",\n \\"tax\\" : \\"VAT\\",\n \\"tax_rate_id\\" : 11765,\n \\"tax_rate_code\\" : \\"VAT 21% RVTA\\",\n \\"tax_rate_name\\" : \\"VAT 21%\\" ,\n \\"操作数\\" : 21,\n \\"数量\\" : 172218.1\n } ]\n }\n }\n}\"" [] []}

因此,它调用处理器费用计算器来计算所有不同的费用,但由于某种原因它会抛出一个 http 代码 100 并加载响应。

我做错了什么?我错过了什么吗?

我希望只获得映射的 http 代码

java rest http jboss http-headers
© www.soinside.com 2019 - 2024. All rights reserved.