[英]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.