使用用例,Springboot Microservice接受JSON有效负载,然后在@RestController
的处理程序中,API将触发另一个下游应用程序应用程序,该应用程序接受application/xml
或{{1}中的有效负载} ??
text/xml
---> /api/v1/users Type:application/JSON
使用RestTemplate和HTTPEntity来表示请求和响应实体。
现在面对以下错误:
/api/v1/downstream/ Type: text/xml
如果我使用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.
注释,那么错误是:无法为类实例化JAXBContext。
还有什么建议我怎么能实现这个功能?
答案 0 :(得分:0)
根据您的问题,您必须实现以下流程:
客户端---- 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传递给webservice,它将返回XML。 UNmarshall再次使用它的响应对象并使用Spring Boot Webservice作为JSON返回。