最近学习MyEclipse、workshop方面的知识,重点是关于webservice方面的。
经过大概2周的学习、实践,有点小收获。
一、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,在本机开发测试。这样应该比较好。