Spring Restful服务中的java.lang.IllegalArgumentException映射没有“ orderId”值

时间:2019-06-24 05:53:44

标签: java spring rest

我正在从事与付款相关的Restful服务。当我尝试调用API时,会发生名为java.lang.IllegalArgumentException的异常orderId

异常

作为背景,我创建了HttpHeaders和LinkedMultiValueMap并将值放入其中并调用了API。

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
LinkedMultiValueMap<String, String> uriVars = new LinkedMultiValueMap<>();
uriVars.add("merchantId", _paymentInstrument.getAcquirerMid());
uriVars.add("orderId", _paymentInstrument.getOrderId().toString());
uriVars.add("transactionId", _paymentInstrument.getTransactionId().toString());

VoidRequest voidRequest = createVoidRequest(_paymentInstrument.getTargetTransactionId());
HttpEntity<VoidRequest> requestEntity = new HttpEntity<>(voidRequest, headers);
TransactionResponse voidResponse = null;
try {
    ResponseEntity<TransactionResponse> responseEntity = restTemplate.exchange(getEnvironment().getProperty(IPG_TRANSACTION_URL), 
        HttpMethod.PUT, requestEntity, TransactionResponse.class, uriVars);
        voidResponse = responseEntity.getBody();
        log.info(LogSupport.PG_LOGS_CARGILLS_VOID_TRX + "[AcquirerMID ={};TransactionId ={};ResponseCode={};ResponseText={}]", _paymentInstrument.getAcquirerMid(), 
                _paymentInstrument.getTransactionId(), voidResponse.getResponse().getAcquirerCode(), voidResponse.getResponse().getAcquirerMessage());
} catch (ResourceAccessException rae) {
    throw rae;
} catch (Exception e) {     
    voidResponse = new TransactionResponse();
    voidResponse.setResult("ERROR");
    ErrorResponse error = new ErrorResponse();
    error.setCause("EXCEPTION");
    error.setExplanation(e.getMessage());
}

这会发生java.lang.IllegalArgumentException映射异常,其中“ orderId”没有值。

1 个答案:

答案 0 :(得分:-1)

  1. 检查 orderId 的拼写错误
  2. 如果您在属性文件中声明动态值,请将名称与属性示例进行比较:{orderId}