簡體   English   中英

對於很長的請求,在 JAVA 中實現 SOAP 客戶端的良好做法?

[英]Good practice to implement SOAP clients in JAVA for very long requests?

我正在嘗試關注這篇文章

要重現我手頭的示例 xml 請求。 問題是這個特殊的請求很長,結構很深,我只是厭倦了添加子元素並用我的眼睛跟蹤結構。

下面是一些示例代碼,總結了我一直在做的事情。 我正在復制的請求至少有 5 層和 50 多個元素。 它應該是一個包含候選人個人信息的申請表。

// SOAP Envelop...
// SOAP Body
        SOAPBody soapBody = envelope.getBody();
        SOAPElement aaa = soapBody.addChildElement("aaaName", "", "http://my.uri.aaa");
        SOAPElement bbb = aaa.addChildElement("bbbName", "", "http://my.uri.bbb");
        SOAPElement ccc = bbb.addChildElement("cccName");
        SOAPElement ddd = ccc.addChildElement("dddName");

        //... and so on ...        

        SOAPElement dddChild1 = ddd.addChildElement("dddChild1Name");
        dddChild1.addTextNode("I'm dddChild1");
        SOAPElement dddChild2 = ddd.addChildElement("dddChild2Name");
        SOAPElement dddGrandChild2 = dddChild2.addChildElement("dddGrandChild2Name");
        dddGrandChild2.addTextNode("I'm dddGrandChild2");

        //... and so on ...

任何人都可以就如何使其更容易構建/閱讀/管理提供一些建議嗎?

If your request is that large, I would recommend creating Java objects from the WSDL or XSD and then using JAXB to marshal the Java objects to the XML.

Mkyong 有一個簡單的 JAXB 示例: https://www.mkyong.com/java/jaxb-hello-world-example/

注意:您將不得不實例化和填充對象,但我認為這比您現在的方式更容易管理。

If you're using Eclipse, you can generate the objects using the steps found in this answer: Generate web service java class from WSDL in eclipse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM