in main method ,I start a new thread
RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);
HandleDataThread handleDataThread = new HandleDataThread(emailVo);
handleDataThread.start();
I will call a static method in this thread :
RestTemplateUtil.sendEmailByHttp(emailVo);
the static class :
@Component
public class RestTemplateUtil {
private static RestTemplate restTemplate;
private RestTemplateUtil(){}
@Autowired
public static void setRestTemplate(RestTemplate restTemplate) {
RestTemplateUtil.restTemplate = restTemplate;
}
public static void sendEmailByHttp(EmailVO emailVo) {
String url = "http://host//xxxx/xxxx";
ResponseEntity<RespInfo> entity = restTemplate.postForEntity(url, emailVo, RespInfo.class);
...
}
}
the restTemplate complain NullPoint,and post method fail when host use discovery service name