Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java resttemplate.exchange引发空指针异常 restemplate.postForEntity(url、实体、String.class); ResponseEntity response=restemplate.exchange(url,HttpMethod.POST,entity,String.class);_Java_Spring_Kubernetes_Resttemplate - Fatal编程技术网

Java resttemplate.exchange引发空指针异常 restemplate.postForEntity(url、实体、String.class); ResponseEntity response=restemplate.exchange(url,HttpMethod.POST,entity,String.class);

Java resttemplate.exchange引发空指针异常 restemplate.postForEntity(url、实体、String.class); ResponseEntity response=restemplate.exchange(url,HttpMethod.POST,entity,String.class);,java,spring,kubernetes,resttemplate,Java,Spring,Kubernetes,Resttemplate,尝试创建对象时引发空指针异常 我检查了实体和url,它被打印在日志消息中。但在这一行,它抛出空指针异常,但对象仍在创建中 如果正在创建对象,该对象如何引发空指针异常 我使用的是kubernetes,当我检查kubernetes中的命令行时,它说对象已创建。但在日志中它显示空指针异常问题似乎是您正在执行请求两次 restTemplate.postForEntity(url,entity, String.class); ResponseEntity<String> response =

尝试创建对象时引发空指针异常

我检查了实体和url,它被打印在日志消息中。但在这一行,它抛出空指针异常,但对象仍在创建中

如果正在创建对象,该对象如何引发空指针异常


我使用的是kubernetes,当我检查kubernetes中的命令行时,它说对象已创建。但在日志中它显示空指针异常

问题似乎是您正在执行请求两次

restTemplate.postForEntity(url,entity, String.class);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);

我有一个类似的问题,并与它的2天。下面是我的踪迹

ResponseEntity<String> response = restTemplate.postForEntity(url, entity, String.class);
根本原因在于Charset类中的availableCharsets()静态方法。其中一个字符集提供程序返回空迭代器,下面的代码段i.hasNext()引发空指针异常

java.lang.NullPointerException
    at java.nio.charset.Charset.put(Charset.java:538)
    at java.nio.charset.Charset.access$200(Charset.java:271)
    at java.nio.charset.Charset$3.run(Charset.java:584)
    at java.nio.charset.Charset$3.run(Charset.java:573)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.nio.charset.Charset.availableCharsets(Charset.java:572)
    at org.springframework.http.converter.StringHttpMessageConverter.getAcceptedCharsets(StringHttpMessageConverter.java:119)
    at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:103)
    at org.springframework.http.converter.StringHttpMessageConverter.writeInternal(StringHttpMessageConverter.java:41)
私有静态void put(迭代器i,映射m){
while(i.hasNext()){
字符集cs=i.next();
如果(!m.containsKey(cs.name()))
m、 put(cs.name(),cs);
}
}
如果回溯stacktrace调用,StringHttpMessageConverter.writeInternal()方法将检查writeAcceptCharset布尔值,然后从调用Charset静态方法的位置调用getAcceptedCharsets()。要避免此呼叫,请添加以下行

private static void put(Iterator<Charset> i, Map<String,Charset> m) {
        while (i.hasNext()) {
            Charset cs = i.next();
            if (!m.containsKey(cs.name()))
                m.put(cs.name(), cs);
        }
    }
StringHttpMessageConverter StringHttpMessageConverter=新的StringHttpMessageConverter(Charset.forName(“UTF-8”);
stringHttpMessageConverter.setWriteAcceptCharset(false);
responseEntity=restTemplate.exchange(requestUrl.toString(),HttpMethod.GET,request.class);

你能发布stackTrace吗?@Luanmalaguti我试过对resttemplate.postforentity进行注释,在注释该行之后,在日志中-->对象成功创建..resttemplate.postforentity和resttemplate.exchange不能并行使用?@JavaLearner1请发布异常。另一件事:您是否同时使用这两个请求<代码>restTemplate.postForEntity(url、实体、字符串.class)已返回一个
响应性响应
。请参阅我的意思,您可以发布您正在接收的NullPointer异常日志吗@JavaLearner1@kamwo是的,那是我的错误..我使用了这两个请求,所以它尝试创建对象两次..这是抛出错误。。
private static void put(Iterator<Charset> i, Map<String,Charset> m) {
        while (i.hasNext()) {
            Charset cs = i.next();
            if (!m.containsKey(cs.name()))
                m.put(cs.name(), cs);
        }
    }
StringHttpMessageConverter stringHttpMessageConverter=new StringHttpMessageConverter(Charset.forName("UTF-8"));
stringHttpMessageConverter.setWriteAcceptCharset(false);
responseEntity=restTemplate.exchange(requestUrl.toString(), HttpMethod.GET,request, <your_class>.class);