最近做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调用
经过测试,调用成功
以上经过本人基于现有环境测试,没有测试多个版本,纯属测试后的个人观点,如有不恰当之处,请大家指正。