After Spring Boot 3.x version, an error is received when passing a null header to Resttemplate. Is there any way to overcome this situation? Error:
java.lang.NullPointerException: Parameter specified as non-null is null: method okhttp3.Request$Builder.addHeader, parameter value
at okhttp3.Request$Builder.addHeader(Request.kt) ~[okhttp-4.11.0.jar:?]
at org.springframework.http.client.OkHttp3ClientHttpRequest.lambda$executeInternal$0(OkHttp3ClientHttpRequest.java:91) ~[spring-web-6.1.3.jar:6.1.3]
RestTemplateConfig class
public class RestTemplateConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.additionalInterceptors(createCustomHeadersInterceptor()).build();
}
public ClientHttpRequestInterceptor createCustomHeadersInterceptor() {
return (request, body, execution) -> {
UserContext userContext = ContextHolder.getCurrentContext().getUserContext();
HttpHeaders headers = request.getHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add(HeaderKeys.GUID, userContext.getGuid() != null ? userContext.getGuid() : null);
headers.add(HeaderKeys.USERNAME, userContext.getUsername());
return execution.execute(request, body);
};
}
}
Example Request
@Autowired
private RestTemplate restTemplate;
ResponseEntity<ServiceResponse<Boolean>> response = restTemplate.exchange(serviceUrl,
HttpMethod.POST,
request,
new ParameterizedTypeReference<ServiceResponse<Boolean>>() {
});
Resttemplate gives an error if one of the passed Headers is Null for Exemple:
headers.add(HeaderKeys.GUID, userContext.getGuid() != null ? userContext.getGuid() : null);
How Can I fix?