我的應用程序在我的本地機器上運行在jboss上。
我下載了wsdl文件,在eclipse中生成java代碼。運行並有異常。
處理請求時捕獲異常:反序列化錯誤:java.lang.NumberFormatException:對於輸入字符串:「」
(應用程序正確地與另一個簡單WS一起工作)。
一些谷歌上搜索,我發現代碼之後產生錯誤的xml:
預期:multiRef生成的xml通過WS發送
<soapenv:Body>
<ns1:setLevel soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="###">
<id xsi:type="xsd:string">x2148</id>
<level xsi:type="xsd:long">5</level>
</ns1:setLevel>
</soapenv:Body>
而是通過TCPMon的/小提琴手,我發現我的請求看起來像:
<soapenv:Body>
<ns1:setLevel soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="###">
<id xsi:type="xsd:string">x2148</id>
<level href="#id0" />
</ns1:setLevel>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="xsd:long" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">5</multiRef>
</soapenv:Body>
谷歌上搜索我後發現解決方案是變化
<parameter name="sendMultiRefs" value="true"/>
在服務器端的server-config.wsdd文件中爲false。但我沒有這個文件。
任何解決方案?我只看到一個解決方案 - 在運行時更改xml文件 - 但聽起來不太好。
鏈接上的Alexs解決方案確實可以處理MultiRefs –
是的,但multiRefs的multiRefs是一個問題。它無法擴展到無底層級。但它對我有用! –