Myeclipse调用webservice总结(客户端调用)

来源:互联网 发布:手机wifi网络异常 编辑:程序博客网 时间:2024/05/17 09:10

一、MyEclipse利用网上公开发布WSDL文件,创建WebService Client,进行调用WebService;

      网上找的WSDL测试例子wdlurl:http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

    1. 打开MyEclipse,新建一个Web Project;然后新建 一个package,取名为com.test;

    2. 然后再New一个Web Service Client;

         点next ,然后录入 WSDL URL: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

         点next,点finish;ok了,系统会自动帮忙生成很多代码。

    3. 打开qqOnlineWebServiceClient.java;

        在main函数里 加入 String str = qqOnlineWebServiceSoap.qqCheckOnline("854915761");   加好代码后形式如下:

static void main(String[] args) {

qqOnlineWebServiceClient client = new qqOnlineWebServiceClient();

//create a default service endpoint
com.test.qqOnlineWebServiceSoap qqOnlineWebServiceSoap = client
    .getqqOnlineWebServiceSoap();

//TODO: Add custom client code here
//
//qqOnlineWebServiceSoap.yourServiceOperationHere();
String str = qqOnlineWebServiceSoap.qqCheckOnline("854915761");
System.out.println("test client completed:"+str);
System.exit(0);
}

4.然后右击qqOnlineWebServiceClient.java, run as application,

会报错:【报错不可怕,我们可以根据错误原因,解决之,下面错误的原因就是少commons-httpclient-3.1-rc1.jar这么一个玩意,一般安装后MyEclipse后是没有这个东东的,需要下载一下,网上有】

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/methods/RequestEntity
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:108)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
at org.codehaus.xfire.client.Client.invoke(Client.java:335)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy8.qqCheckOnline(Unknown Source)
at com.test.qqOnlineWebServiceClient.main(qqOnlineWebServiceClient.java:126)

5.将下载到的commons-httpclient-3.1-rc1.jar放到MyEclipse安装目录下的MyEclipse/eclipse/plugins里【我是放到这里了,应该也可以放到其他地方,只要在classpath路径里应该就行】,然后右击工程选择build path-->configure build path;然后在打开的窗口里选择libraries选项卡,点Add External JARs,然后选择刚才放到plugins里的commons-httpclient-3.1-rc1.jar。只要加进来就可以了。

6.再run as一把,ok了。

输出:

    test client completed:N

二、work shop创建webservice总结

    

    oracle出的一个集成快速便捷的开发环境,我理解的是,bea的weblogic 和其他产品 + MyEclipse + Oracle自己开发的一些组件等整合到一起,可视化程度很高。

    查看workshop的help,根据上面的web service的例子【做了一个getCustomer的例子,每一步都有截图,挺清楚的】,一步一步实践;

    注意:数据源在代码里有简单的指定,如jdniname = samplesdatasource;webservice发布之前需要在weblogic中配置 这个数据源,我使用的是mysql,配置完以后可以Test 一下,然后add到运行的那个server中。

   然后代码中该建的表也需要先建一下。

   workshop启动server很慢,也很耗内存,建议可以在另外的机器上启动server,在本机开发测试。这样应该比较好。