Java 带数组的Webservice请求
我有一个Web服务,它接受一个包含6个字符串的RequestDTO。在测试Web服务时,我只需发送如下XML,它工作正常:Java 带数组的Webservice请求,java,xml,web-services,soap,Java,Xml,Web Services,Soap,我有一个Web服务,它接受一个包含6个字符串的RequestDTO。在测试Web服务时,我只需发送如下XML,它工作正常: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:java="java:dk.thg.fll" xmlns:java1="java:dk.thg.common"> <soapenv:Header/> <soapenv:Bod
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:java="java:dk.thg.fll"
xmlns:java1="java:dk.thg.common">
<soapenv:Header/>
<soapenv:Body>
<web:service>
<web:request>
<java:request>
<java1:Id>1</java1:Id>
<java1:User>anton</java1:User>
</java:request>
<java:ms>4453</java:ms>
<java:element>GG</java:element>
<java:service>L</java:service>
<java:data><![CDATA[ <data><task><type>T</type><action>A</action> </task></data> ]]></java:data>
</web:request>
</web:service>
</soapenv:Body>
</soapenv:Envelope>
1.
安东
4453
游戏打得好
L
TA]]>
我现在的问题是,我必须创建一个能够处理一组请求的Web服务。我的想法是简单地拥有一个RequestDTO数组。这意味着新的Web服务接受一个包含RequestDTO数组的MultiRequestDTO
但是XML应该是什么样子呢当我使用SoapUI进行测试时,它会自动生成请求xml,它说我的新webservice xml是这样的:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:java="java:dk.thg.fll"
xmlns:java1="java:dk.thg.common">
<soapenv:Header/>
<soapenv:Body>
<web:service>
<web:multiRequest>
<java:request>
<java1:Id>?</java1:Id>
<java1:User>?</java1:User>
</java:request>
<java:requests/>
</web:multiRequest>
</web:service>
</soapenv:Body>
</soapenv:Envelope>
?
?
发送请求时(我的数组)应该是什么样子
我试图简单地从第一个XML复制内容(复制标记),但没有成功
有人能帮忙吗
*编辑*-请求
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:java="java:dk.thg.fll" xmlns:java1="java:dk.thg.common">
<soapenv:Header/>
<soapenv:Body>
<web:service>
<web:multiRequest>
<java:requestInfo>
<java1:Id>10</java1:Id>
<java1:User>1234</java1:User>
</java:requestInfo>
<java:requests>
singleRequest
<java:request>
<java1:Id>10</java1:Id>
<java1:User>789</java1:User>
</java:request>
<java:msisdn>4561814453</java:msisdn>
<java:element>4453</java:element>
<java:service>GG</java:service>
<java:details><![CDATA[ <details><task><type>T</type><action>A</action> </task></details>]]></java:details>
</java1:singleRequest>
</java:requests>
</web:multiRequest>
</web:service>
10
1234
单一请求
10
789
4561814453
4453
游戏打得好
TA]]>
这就是我现在发出的。。但是没有接收到数组中的所有值,数组中的对象只包含空值。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:java="java:dk.thg.fll" xmlns:java1="java:dk.thg.common">
<soapenv:Header/>
<soapenv:Body>
<web:service>
<web:multiRequest>
<java:request>
<java1:Id>?</java1:Id>
<java1:User>?</java1:User>
</java:request>
<java:request>
<java1:Id>?</java1:Id>
<java1:User>?</java1:User>
</java:request>
<java:requests/>
<java:request>
<java1:Id>?</java1:Id>
<java1:User>?</java1:User>
</java:request>
</web:multiRequest>
</web:service> </soapenv:Body>
</soapenv:Envelope>
?
?
?
?
?
?
如果您想触发多个java:request,那么您的XML请求应该是这样的
?
?
?
?
?
?
如果您想在XML中触发多个java:request哪个元素是数组类型?java:requests是arrayAre类型使用任何XSD或元素在wsdl中声明?对于您的java:requests是maxOccurs=“unbounded”?在XML中,哪个元素是数组类型?java:requests是arrayAre类型,使用任何XSD或元素在wsdl中声明?对于java:request是maxOccurs=“unbounded”?您可以添加多个java:request并在SOAPUII上触发它。我会收到以下错误消息:由以下原因引起:com.bea.xml.XmlException:必需的soap数组类型不存在问题您的java:request具有maxOccurs=“unbounded”?你能分享你的WSDL吗?嗨。。是的,java:requests有maxOccurs=“unbounded”好的,我认为您的web:multirequest应该采用java:request的数组类型,所以maxOccurs=“unbounded”将适用于web:multirequest而不是java:request。您可以添加多个java:request并在SOAPUII上触发它。我会收到以下错误消息:由:com.bea.xml.XmlException引起:必需的soap数组类型不存在问题您的java:request具有maxOccurs=“unbounded”?你能分享你的WSDL吗?嗨。。是的,java:requests有maxOccurs=“unbounded”好的,我认为您的web:multirequest应该采用java:request的数组类型,因此maxOccurs=“unbounded”将适用于web:multirequest,而不是java:request。