Позвольте мне показать код.
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(PublicConfigRpt.REST_TEMPALTE_READ_TIMEOUT);
factory.setConnectTimeout(PublicConfigRpt.REST_TEMPLATE_CONNECT_TIMEOUT);
return factory;
}
}
PublicConfigRpt.REST_TEMPALTE_READ_TIMEOUT определяется следующим образом.
@Configuration
public class PublicConfigRpt
{
public static Integer REST_TEMPALTE_READ_TIMEOUT;
public static Integer REST_TEMPLATE_CONNECT_TIMEOUT;
@Value("${rest_template_read_timeout}")
public void setRestTempalteReadTimeout(Integer restTempalteReadTimeout) {
REST_TEMPALTE_READ_TIMEOUT = restTempalteReadTimeout;
}
@Value("${rest_template_connect_timeout}")
public void setRestTemplateConnectTimeout(Integer restTemplateConnectTimeout) {
REST_TEMPLATE_CONNECT_TIMEOUT = restTemplateConnectTimeout;
}
}
Параметр тайм-аута считывается из файла свойств и устанавливается в SimpleClientHttpRequestFactory.
Это нормально, когда запускается из локальной идеи Intellij.Но при развертывании на k8s возникает исключение.
2019/03/07 16: 50: 34.964 |ИНФО |Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'simpleClientHttpRequestFactory', определенного в ресурсе пути к классу [cn / homersatell / dd / jd / report / config / RestTemplateConfig.class]: сбой создания экземпляра бина через метод фабрики;вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.http.client.ClientHttpRequestFactory]: метод фабрики 'simpleClientHttpRequestFactory' вызвал исключение;вложенным исключением является java.lang.NullPointerException
PublicConfigRpt.REST_TEMPALTE_READ_TIMEOUT имеет значение NULL, когда вызывается simpleClientHttpRequestFactory, а затем генерируется NULL исключение.Кто-нибудь может сказать мне, как справиться с этим?Спасибо.