从XML填充Soap-Request

时间:2014-09-12 10:04:01

标签: java xml web-services soap wsdl

我有以下问题:

我有一个包含数据的XML文件。我还有一个有效的Soap-request-“模板”,我通过java中的soapui创建了一个WSDL文件(我可以访问它)。工作得很好。

现在我必须在Soap请求中填写XML文件中的数据,所以我可以发送它。

XML文件如下所示:

<?xml version="1.0" encoding="UTF-8"?><Person>
<job>
Consultant
</job>
<birthDate>
1999-01-01
</birthDate>
<surname>
Doe
</surname>
<schufaToken>

</schufaToken>
<prename>
John
</prename>
</Person>

请注意,属性 schufaToken 可以多次出现!

生成的Soap-“模板”如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:scor="http://www.ibm.com/rules/decisionservice/ScoringDemo/ScoringDemo" xmlns:par="http://www.ibm.com/rules/decisionservice/ScoringDemo/ScoringDemo/param" xmlns:demo="http://www.example.de/scoring/demo">
   <soapenv:Header/>
   <soapenv:Body>
      <scor:ScoringDemoRequest>
         <!--Optional:-->
         <scor:DecisionID>?</scor:DecisionID>
         <!--Zero or more repetitions:-->
         <scor:blacklist>?</scor:blacklist>
         <par:person>
            <person>
               <demo:prename>?</demo:prename>
               <demo:surname>?</demo:surname>
               <demo:birthDate>?</demo:birthDate>
               <demo:job>?</demo:job>
               <!--Zero or more repetitions:-->
               <demo:schufaToken>
                  <demo:code>?</demo:code>
                  <demo:status>?</demo:status>
                  <demo:score>?</demo:score>
               </demo:schufaToken>
            </person>
         </par:person>
      </scor:ScoringDemoRequest>
   </soapenv:Body>
</soapenv:Envelope>

我遇到的问题是XML文件不是静态的,看起来完全不同,并且可能有完全不同的属性。

我如何在不知道节点名称或其他任何内容的情况下将数据从XML文件复制到java中的generatet“模板”?

非常感谢!

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是在javax.xml.soap包中使用API​​,允许您管理SOAP请求。

看一下这个例子https://stackoverflow.com/a/15949858/3989318