Spring启动API响应(application / json)转换为响应(text / xml)

问题描述 投票:0回答:1

在使用案例时,Springboot微服务接受JSON有效负载,然后,在@RestController的处理程序中,API将触发另一个下游应用程序应用程序,该应用程序接受application/xmltext/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。

还有什么建议我怎样才能实现这个功能?

java spring rest spring-boot microservices
1个回答
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传递给Web服务,它将返回XML。将它再次编组到它的响应对象中,并使用Spring Boot Webservice作为JSON返回。

Reference

© www.soinside.com 2019 - 2024. All rights reserved.