У меня есть сценарий, в котором я хочу приостановить линию, используя мой сервис весенней загрузки.Я использую Spring-boot и Go Pipeline API 16.1.0
Ниже приведен фактический URL, доступный в документации GO API для приостановки конвейера через CURL, который отлично работает
curl 'http://ci.example.com/go/api/pipelines/dev1-pineline/pause' -u 'имя пользователя: пароль' -X POST -d 'pauseCause = тестовая пауза'
Над CURL URL работает должным образом, но когда я пытаюсь сделать то же самое с RestTemplate, он не работает.Код функции RestTemplate:
public Object pausePipeline() {
String credentials = userName+":"+password;
byte[] encoding = Base64.encodeBase64(credentials.getBytes());
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", String.valueOf(encoding));
//headers.setContentType(MediaType.APPLICATION_JSON); // optional
String url = String.format("%s/%s%s", pipelineUrl,pipelineName,"/pause");
String data = "pauseCause=Monthend process started.";
HttpEntity<String> entity = new HttpEntity<>(data, headers);
return restTemplate.exchange(url, HttpMethod.POST, entity , Object.class).getBody();
}
Приведенный выше код вызывает исключение при попытке подключения с использованием конечной точки Rest. Трассировка стека исключения составляет
[o.a.c.c.C.[.[.[.[dispatcherServlet]] (http-nio-8080-exec-1) Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException: 401 Full authentication is required to access this resource] with root cause
org.springframework.web.client.HttpClientErrorException: 401 Full authentication is required to access this resource
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:614) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:570) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:448) ~[spring-web-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at com.premierinc.forecasting.suggesteds.MonthEndService.pausePipeline(MonthEndService.java:51) ~[main/:?]
at com.premierinc.forecasting.web.ExtractsApi.pauseMonendPipeline(ExtractsApi.java:104) ~[main/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270) ~[springloaded-1.2.3.RELEASE.jar:1.2.3.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[seb-4.1.6.RELEASE.jar:4.1.6.RELEASE]