Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JAVA中为很长的请求实现SOAP客户端的良好实践?_Java_Soap - Fatal编程技术网

在JAVA中为很长的请求实现SOAP客户端的良好实践?

在JAVA中为很长的请求实现SOAP客户端的良好实践?,java,soap,Java,Soap,我正试着跟着这个 复制我手头的一个示例xml请求。 问题是,这个特殊的请求非常长,结构非常深,我只是厌倦了添加子元素和用眼睛跟踪结构 下面是一些示例代码,总结了我所做的工作。我正在复制的请求至少有5层和50多个元素。这应该是一份包含候选人个人信息的申请表 // SOAP Envelop... // SOAP Body SOAPBody soapBody = envelope.getBody(); SOAPElement aaa = soapBody.addChil

我正试着跟着这个

复制我手头的一个示例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 ...

有谁能就如何使构建/读取/管理变得更容易一些给出一些建议吗?

如果您的请求太大,我建议您从WSDL或XSD创建Java对象,然后使用JAXB将Java对象封送到XML

Mkyong有一个简单的JAXB示例:

注意:您必须实例化和填充对象,但我认为这比您现在的方式更容易管理

如果您使用的是Eclipse,则可以使用以下步骤生成对象: