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