您的位置:首页 > 编程语言 > Java开发

java调用webservice接口完整源码

2015-04-03 15:55 267 查看
对方提供的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: