java调用webservice接口完整源码

对方提供的webservice是用c#写的,而我这个方案对于java或c#(亲测过)提供的webservice都可以使用。具体步骤如下:
1、新建一个普通的java项目,在项目上右键new–other–web service client –next如图,在框内输入webservice地址,例如:http://10.10.10.60:7000/srv_waipaiItem/ws/wp?wsdl(地址输入完后需要等待一两秒,next才可点击)
这里写图片描述
2、输入正确的webservice地址后,一路finish后会在项目的src下生产类似下图的目录文件:
这里写图片描述
类名称最短的那个一般就是你需要的文件名字。
3、需要添加的jar包如下:jar包的下载地址(免积分):http://download.csdn.net/detail/zl544434558/8561227
这里写图片描述

4、测试代码的main方法:


import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.ciming.waipaiItem.ws.WaiPaiRecordWs;

public class TestWebServiceClient {
    public static void main(String[] args) throws Exception {

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        // 注册WebService接口
        factory.setServiceClass(WaiPaiRecordWs.class);
        // 设置WebService地址
String url = "http://10.10.10.61:7001/srv_waipaiItem/ws/wp?wsdl";
        factory.setAddress(url);
    WaiPaiRecordWs record = (WaiPaiRecordWs) factory.create();
        //接口提供的方法名字为getDeliverySingle
String jsonString = record.getDeliverySingle("adk", "adkPwd",
                "003300114112150914", "hz2_2");
        System.out.println(jsonString);
        System.out.println("执行成功");
    }
}

但是如果你直接运行就会报如下的类似错误:

Exception in thread "main" javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method getDeliverySingle.
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123)
    at com.sun.proxy.$Proxy17.getDeliverySingle(Unknown Source)
    at com.evan.webService.test.TestWebServiceClient.main(TestWebServiceClient.java:19)

该错误的解决方案是在生成的文件的interface中添加@WebService注解即可。例如本项目只需要在 WaiPaiRecordWs 接口中添加@WebService即可。

至此java已经可以正常调用远程的webservice了。而且跟调用本地方法一样方便。项目的整个demo下载地址:http://download.csdn.net/detail/zl544434558/8561301

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值