在使用案例时,Springboot微服务接受JSON有效负载,然后,在@RestController
的处理程序中,API将触发另一个下游应用程序应用程序,该应用程序接受application/xml
或text/xml
中的有效负载?
/api/v1/users Type:application/JSON
---> /api/v1/downstream/ Type: text/xml
使用RestTemplate和HTTPEntity表示请求和响应实体。
现在面对以下错误:
Could not extract response: no suitable HttpMessageConverter found for response type (How could I register new message converters), please bare with me I'm new to Spring boot and Spring.
如果我使用@XmlRootElement
注释,那么错误是:无法为类实例化JAXBContext。
还有什么建议我怎样才能实现这个功能?
根据您的问题,您必须实现以下流程:
客户端---- json ---->服务器1 -------- Xml -------> Server2
客户端<---- json ----服务器1 <-------- Xml ------- Server2
您可以将JSON数据接受到Java模型中,现在您必须使用XML作为输入来访问另一个Web服务。以下是可以帮助您实现的方法:
private static String jaxbObjectToXML(Customer customer) {
String xmlString = "";
try {
JAXBContext context = JAXBContext.newInstance(Customer.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML
StringWriter sw = new StringWriter();
m.marshal(customer, sw);
xmlString = sw.toString();
} catch (JAXBException e) {
e.printStackTrace();
}
return xmlString;
}
将此XML传递给Web服务,它将返回XML。将它再次编组到它的响应对象中,并使用Spring Boot Webservice作为JSON返回。