java调用第三方webservice接口

时间: 2023-08-15 admin 互联网

java调用第三方webservice接口

java调用第三方webservice接口

java调用webservice接口完整源码
2015年04月03日 15:55:18 阅读数:3080

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

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 = ":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("执行成功");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5

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

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