这是我第一次使用SOAP并与spring一起工作。但是问题很多。不知道它的有效问题不是我的要求。
所以我在SOAP点上使用了xml作为输入。该服务运行良好。 现在,我尝试调用服务方法,类似于下面的代码。
HttpHeaders header = new HttpHeaders();
header.set(HttpHeaders.CONTENT_TYPE, "application/saop+xml");
Resource resource = new ClassPathResource("soap/valid-req.xml");
String xml = IOUtils.toString(resource.getInputStream(), "UTF-8");
HttpEntity entity = new HttpEntity<>(xml, header);
String response = restTemplate.postForObject("http://localhost:8080/ws/HttpImport", entity, String.class);
是否可以使用spring Rest Template调用SOAP服务,或者我们有其他替代方法吗?
有人可以帮忙吗?
先谢谢了。
答案 0 :(得分:0)
尝试此代码
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.TEXT_XML);
Resource resource = new ClassPathResource("soap/valid-req.xml");
String xml = IOUtils.toString(resource.getInputStream(), "UTF-8");
HttpEntity entity = new HttpEntity<>(xml, header);
ResponseEntity<String> response = restTemplate.exchange("http://localhost:8080/ws/HttpImport", HttpMethod.POST, entity, String.class);
String responseString =response.getBody();