让我显示代码。
@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:在类路径资源[cn / homersatellite / dd / jd / report / config / RestTemplateConfig.class]中创建名称为'simpleClientHttpRequestFactory'的bean时出错:通过工厂方法实例化Bean失败;嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.http.client.ClientHttpRequestFactory]:工厂方法'simpleClientHttpRequestFactory'引发了异常;嵌套的异常是java.lang.NullPointerException
当调用simpleClientHttpRequestFactory时,PublicConfigRpt.REST_TEMPALTE_READ_TIMEOUT为null,然后引发null异常。有人可以告诉我如何处理吗?谢谢。