1. 程式人生 > >Delphi呼叫Java WebService(特別注意介面引數名字)

Delphi呼叫Java WebService(特別注意介面引數名字)

最近做NC(java)和HIS(delphi)對接遇到這個問題,兩邊開發搞了兩三天,終於搞明白了。

1、delphi呼叫java webservice,介面可以被呼叫,但收到引數都為空,從網上查了好多辦法,很多說註釋掉就可以了,但我這注釋掉還是不好用。介面接收到引數仍然是null

//  InvRegistry.RegisterInvokeOptions(TypeInfo(INewServicePortType), ioDocument);

2、解決辦法:(1)註釋掉上面哪行;(2)java釋出的webservice方法引數名稱避免與delphi關鍵字衝突。介面方法兩個引數本來是type和param,然後type是delphi中關鍵字,改成busibype,測試通過。

一、delphi呼叫webservice步驟

使用的開發環境:Java1.7;Delphi XE2

1、Componet→import WSDL、填寫wsdl地址、然後next→next→finished

開發工具會自動生成一個介面呼叫的客戶端檔案。



2、修改生成的檔案,第三行註釋掉,至於為什麼註釋掉,我也不知道。


生成的檔案中,注入的介面方法引數名和返回值型別需要跟webservice完全一致。

java介面:


delphi wsdl生成客戶端檔案:


3、delphi呼叫


經過測試,呼叫成功

以上經過本人基於現有環境測試,沒有測試多個版本,純屬測試後的個人觀點,如有不恰當之處,請大家指正。