Avatar
0
Thân Nam Teacher
Thân Nam Teacher
Mapping request form Json to Xml
Em chào anh.

Trong Java mình có thể sử lí mapping request json -> xml để gọi đến 1 service public api dạng soap như thế nào ạ

req.png Annotation 2023-08-04 124459.png
  • Answer
Remain: 5
2 Answers
Avatar
tvd12 Teacher
tvd12 Teacher
Em thử dùng cách này xem sao:
import org.json.JSONObject;
import org.json.XML;

import javax.xml.soap.*;

public class JsonToSoapConverter {

    public static void main(String[] args) {
        // JSON string to convert to XML
        String jsonString = "{"name":"John","age":30,"city":"New York"}";

        // Convert JSON to XML using org.json library
        JSONObject jsonObject = new JSONObject(jsonString);
        String xmlString = XML.toString(jsonObject);

        // Create SOAP message
        try {
            SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
            SOAPPart soapPart = soapMessage.getSOAPPart();
            SOAPEnvelope soapEnvelope = soapPart.getEnvelope();

            // Create SOAP body and add XML content
            SOAPBody soapBody = soapEnvelope.getBody();
            soapBody.addDocument(XML.toJSONObject(xmlString).toXml(soapBody));

            // Print the generated SOAP XML
            System.out.println("Generated SOAP XML:");
            soapMessage.writeTo(System.out);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Chat-GPT keyword: java convert json to soap xml.

  • 0
  • Reply
Avatar
oanh Phamvan Teacher
Mình ko biết bạn dùng thư viện nào nhưng hiện tại mình dự án mình đang làm như sau:

Dùng apache cfx và spring apache cxf soap client

+ Thư việc các thư viện trên giúp bạn control việc tích hợp soap service vào ứng dụng rất dễ dàng các soap service dưới dạng cái inteface và function của nó.

Cụ thể dụng apache cfx :=> gennerate các soap service thành các object và service của nó

+ Dùng spring apache cxf soap client: tạo bean khởi tạo soap service

=> vẫn đề cuối cùng của bạn rất đơn giản, từ request => map thành object xml => call soap service.

+ Mình ko tiện public code ở đây do dự án. Bạn có thể hỏi thêm nếu cần.

Thanks.

  • 0
  • Reply