我在嘗試使用我在JAX-WS中使用Java設置的Web服務時遇到了Delphi 2007問題。 Web服務可以很好地從另一個Java程序和C#/ ASP.NET 2.0網站上使用。但是,當我嘗試使用Delphi 2007中的WSDL Importer(17-DEc-2007修補程序)訪問相同的服務時,JAX-WS Web服務不會識別我傳遞它並將它們置之零的任何參數。Delphi 2007沒有正確使用JAX-WS web服務
我檢查了Delphi傳遞的SOAP消息,並將它與其他人進行了比較,它們幾乎完全相同(除了一些可忽略的名稱空間decs和.NET的一大堆視圖狀態! )
我也一直在網絡上(最有幫助的鏈接是博士的http://www.bobswart.nl/Weblog/Blog.aspx?RootId=5:798),但沒有喜悅。
有沒有人遇到過這個?
TIA。
傳奇仍在繼續!
在使用HTTPRIO對象試圖讓它工作後,我最終放棄了並試圖通過HTTP進行直接的XML傳輸。失敗。
好的,所以我在C#中建立了一個簡單的測試器,並嘗試過。工作沒問題。
使用Fiddler來查看向後和向前發送的內容,似乎唯一的區別在於命名空間。我改變了Delphi中的XML發送命名空間,並且......它的工作原理!
這是由WSDLImporter生成原始XML的一個樣本:
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<version xmlns="http://path.to.service.com/">
<input>test</input>
</version>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
,這裏是什麼實際工作:
<?xml version="1.0"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:version xmlns:ns2="http://path.to.service.com/">
<input>test</input>
</ns2:version>
</S:Body>
</S:Envelope>
所以,現在我知道這一點,我做我去更改WSDLImporter代碼的名稱空間值?我無法在HTTPRIO屬性中看到任何明顯的東西。
TIA
我可以驗證註釋掉該行是否解決了JAX-WS Web服務的問題。我無法驗證許多啤酒的功效,但;-) – 2010-05-14 12:35:06