一、开发webservice接口的方式
1、jdk开发。
2、使用第三方工具开发,如cxf、shiro等等。
我这边介绍jdk方式webservice接口调用。
二、使用jdk调用webservice接口
1、选中项目 -> 右键 -> new -> othert -> 找到web service client 打开-> next -> 在wsdl url 输入 接口地址(格式:http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx?wsdl) -> next.... -> 生成类文件。
生成类文件就完成了。
2、调用过程:
1 package ww; 2 3 import java.util.List; 4 5 import cc.ArrayOfString; 6 import cc.TranslatorWebService; 7 import cc.TranslatorWebServiceSoap; 8 9 public class cccd { 10 11 public static void main(String[] args) { 12 // TODO Auto-generated method stub 13 TranslatorWebServiceSoap as = new TranslatorWebService().getTranslatorWebServiceSoap(); 14 String aw = as.helloWebXml(); 15 System.out.println(aw); 16 List<String> ss = as.getEnCnTwoWayTranslator("dog").getString(); 17 System.out.println(ss.toString()); 18 } 19 20 }
结果:
或则用cmd命名得到
wsimport -s G:\workspace\webService\TheClient\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl
三、杂谈:
A:关于jax-ws、jax-rs的区别
JAX-WS是针对WebService。而JAX-RS是针对RESTful HTTP Service。
可以说这是两种风格的SOA架构风格:
前者以动词为中心,指定的是每次执行函数,大力支持的厂商如BEA,IBM,MS基本都是开发工具厂商,没有开发工具来做WebService简直不是人干的活,呵呵)
后者以名词为中心,每次执行的时候指的是资源,大力支持的厂商如Google,Yahoo,亚马孙等都是服务运营厂商,实在是REST简洁好用,又能满足绝大部分需求)。
JAX-WS是面向消息的,每次请求的时候指定了请求的方法。JAX-RS是面向资源的。后则将网络上的东西当做一种资源,每次请求都是对该资源进行操作,比如对资源的
增删查改。
在网上看到这么一句话:JAVA 中共有三种WebService 规范,分别是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。我暂时不清楚他们能不能叫做webservice服务规
范,而且这个服务规范是什么意思?
http://blog.csdn.net/bapinggaitianli/article/details/46518705
B:可能遇到问题及解决方案
(1)项目在编译时报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commous/httpclient/methods/RequestEntity
则需要下载Apache的httpclient开发包,然后将commons-httpclient-3.1-rc1.jar添加到工程中。
下载地址 - http://jakarta.apache.org/site/downloads/downloads_commons-httpclient.cgi
发行注记 - http://www.apache.org/dist/jakarta/commons/httpclient/RELEASE-NOTES.txt
(2)生成的代理类中如果出现以下错误:
Syntax error,annotations are only available if source level is 5.0
解决办法:Project->JavaCompiler->Compiler Compliance Level->Select "5.0" or Higher
Project->Java Build Path->Libraries->Add Library...->JUnit->Select "JUnit 4.0"->Finish
经过以上设置后可顺利解决问题。
http://blog.csdn.net/qq_20545159/article/details/47903513 一些用于测试用的webservice接口。