当前位置: 首页 > 知识库问答 >
问题:

Spring Boot应用程序中的RestTemplate空指针异常

雍俊远
2023-03-14
2020-09-21 10:14:22,402 ip-172-31-2-31.us-west-2.compute.internal t=? http-nio-7067-exec-5 ERROR o.a.c.c.C.[.[.[.[dispatcherServlet].log - Servlet.service() for servlet [dispatcherServlet] in context with path [/sv] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
    at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:837)
    at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:900)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:721)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:680)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:600)
    at com.service.InstrumentService.getInstruments(InstrumentService.java:100)
    at com.controller.InstrumentController.instrumentDetails(InstrumentController.java:49)

该问题随机发生后,应用程序重新启动,它将开始正常工作。

类中的RestTemplate是自动连线的。

HttpEntity httpEntity = new HttpEntity(JsonUtil.toJson(payload), headers);
        ResponseEntity<String> responseEntity = null;
        try {
            responseEntity = restTemplate.exchange(requestURI, HttpMethod.POST, httpEntity, String.class);
            if (responseEntity.getStatusCode().is2xxSuccessful()) {
                String responseBody = responseEntity.getBody();
                List responseMap;
                ObjectMapper mapper = new ObjectMapper();
                responseMap = mapper.readValue(responseBody, new TypeReference<List>()
           }
}

//主类

@Bean(name = "restTemplate")
    public RestTemplate restTemplate() {
        CloseableHttpClient httpClient = HttpClientBuilder.create ()
                .setMaxConnTotal(
                        mfsConfiguration.getIntProperty("http.connection-pool.max-connection-total"))
                .setMaxConnPerRoute(
                        mfsConfiguration.getIntProperty ("http.connection-pool.max-connection-per-route"))
                .evictExpiredConnections()
                .evictIdleConnections (
                        mfsConfiguration.getLongProperty("http.connection-pool.idle-timeout-in-seconds"),
                        TimeUnit.SECONDS)
                .build ();
        ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return restTemplate;
    }

# http connection pool
http.connection-pool.max-connection-total=10
http.connection-pool.max-connection-per-route=5
http.connection-pool.idle-timeout-in-seconds=60

共有1个答案

解翰采
2023-03-14

实际上,应该有更详细的解释,但据我所知,您应该将RestTemplate作为Bean添加到主类中。

@SpringBootApplication
public class DemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
   @Bean
   public RestTemplate getRestTemplate() {
      return new RestTemplate();
   }
}
 类似资料:
  • Struts检测到未处理的异常: 消息:java.lang.nullPointerException文件:org/apache/jsp/web_002dinf/jsps/api/multilineout_jsp.java行号:160 以下是服务器控制台上的错误: 我在前面读到过,这个问题可能是由于Tomcat库&Web-INF库中的JAR文件冲突造成的,但事实并非如此。 我对Java非常陌生,只维

  • 我想使用spring-kafka KafkaTemplate, 我创建了一个KafkaConfig类: …并在我写给Kafka的类中自动连接了Kafka模板: 出于某种原因,自动布线似乎不起作用。我注意到当我在debug中运行时,KafkaTemplate为null: 此对象不应为空;它应该是一个KafkaTemplate对象。这将引发空指针异常: kafka-spring过去为我工作得很好

  • 它是从哪里来的?

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db