java调用WCF服务
一、概述
最近项目上有需要和建科机器进行通信的需求,而建科这边给的技术文档和服务都是webservice的,我这边要做的就是用Java和建科的webservice交互。
启动建科的webservice,就能看到:
而我一直努力的方向就是实现java和webservice交互,在网上搜索尝试了各种代码始终调不通服务,获取不到数据,一直报这个错:
由于 ContractFilter 在 EndpointDispatcher 不匹配,因此 Action 为“”的消息无法在接收方处理。这可能是由于协定不匹配(发送方和接收方 Action 不匹配)或发送方和接收方绑定/安全不匹配。请检查发送方和接收方是否具有相同的协定和绑定(包括安全要求,如 Message、Transport、None)。
最后才发现,这个东西叫WCF,我要做的是Java和WCF交互,好吧,总算找到方向了,在网上参照牛人的方法,成功实现交互。
二、WSImport实现
1.找到位于%JAVA_HOME%\bin下的wsimport.exe文件;
2.在bin目录下新建文件夹JavaSrc;
3.指定到当前路径,在命令行cmd中输入:
wsimport -s JavaSrc http://192.168.0.45:7999/TjkServiceLibrary/Service1/?wsdl
4.在当前路径的JavaSrc下会生成相关的Java类,直接复制到项目的Src目录下即可使用。
三、测试代码
我写了一个单例工具类,方便调用: