Я вызываю API с помощью resttemplate и получаю UnsupportedOperationsException - PullRequest
0 голосов
/ 24 мая 2019

Я вызываю API с помощью restemplate, включающего базовую авторизацию.Я установил httpheaders и использовал resttemplate postforentity.К сожалению, я получаю UnsupportedOperationsException.Как решить эту проблему?

private String publishPayrollProcessing(String payrollFileUploadDTOJSON) {
        PlanEmployerFileUploadResponse pfur=new PlanEmployerFileUploadResponse();
        String responseMessage;

        //URL
        String BASE_URL_FOR_PROCESSING="http://177.18.48.167:24014/14.0/plan/CUS01%252FSCH%252FF75551";

        HttpHeaders headers =httpheaders();


        RestTemplate restTemplate = new RestTemplate();
        //entity
        HttpEntity<String> entityWithJSON = new HttpEntity<String>(payrollFileUploadDTOJSON,headers);

        restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor("Authorization", "Basic RGlnaXRhbF91c2VyOkRpZ2l0YWxfcGFzc3cwcmQ="));
        //response
        PlanEmployerFileUploadResponse e = restTemplate.postForObject(BASE_URL_FOR_PROCESSING,  entityWithJSON, PlanEmployerFileUploadResponse.class);


        if(e.getData().getErrorCount().equals("0")  && e.getData().getErrorCount() != null) 
        {
            System.out.println("file processed and ok for confirmation");
            String fileReference= e.getData().getFileReference();
            String BASE_URL_FOR_CONFIRMATION="http://172.18.98.167:24014//14.0/plan/CUS01%252FSCH%252FF75551".concat(fileReference) ;
            PlanEmployerFileUploadResponse e1 = restTemplate.postForObject(BASE_URL_FOR_CONFIRMATION, headers, PlanEmployerFileUploadResponse.class);
            responseMessage= "payroll file is validated and processed";
        }
        else {
             responseMessage= "file not processed";
        }
        private HttpHeaders httpheaders() {
        HttpHeaders httpheaders =new HttpHeaders();
        httpheaders.setContentType(MediaType.APPLICATION_JSON);
        httpheaders.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        httpheaders.set("Authorization","Basic RGlnaXRhVyOkRpZ2l0YWxfcGF=");

        return httpheaders;

    }

Это ошибка, которую я получаю:

java.lang.UnsupportedOperationException: null
    at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) ~[na:1.8.0_144]
    at org.springframework.http.HttpHeaders.add(HttpHeaders.java:1181) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.http.client.support.BasicAuthorizationInterceptor.intercept(BasicAuthorizationInterceptor.java:62) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.http.client.InterceptingClientHttpRequest$InterceptingRequestExecution.execute(InterceptingClientHttpRequest.java:85) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:69) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:619) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:380) ~[spring-web-4.3.3.RELEASE.jar:4.3.3.RELEASE]
    at dev.mj.excelupload.service.UploadService.publishPayrollProcessing(UploadService.java:210) ~[classes/:na]
    at dev.mj.excelupload.service.UploadService.upload(UploadService.java:191) ~[classes/:na]
    at dev.mj.excelupload.controller.UploadController.upload(UploadController.java:33) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
    at ...
...