WebService技术,服务端and客户端JDK-wsimport工具(一)
使用webservice服务,需要了解几个名词:soap 简单对象协议、http+xml 、 WSDL
先看下代码结构:
服务端代码与客户端代码分别处于两不同的包中
一、服务端内容
服务端:
@WebService注解,表明这个一个对外提供为webservice的服务类。
@WebMethod注解,表明这是webservice中的一个可以调用的方法。
还可以设置其他注解,(注解会在wsdl文档中体现出来)。
WebServiceImp.java代码:
1 package com.webservice; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 import javax.xml.ws.Endpoint; 6 @WebService 7 public class WebServiceImp { 8 @WebMethod 9 public String getInfo(String id){ 10 String info=""; 11 if (id.equals("1")) { 12 info="张三"; 13 }else if (id.equals("2")) { 14 info="李四"; 15 }else if(id.equals("3")){ 16 info="王五"; 17 }else if(id.equals("4")) { 18 info="赵六"; 19 }else { 20 info="用户不存在"; 21 } 22 return info; 23 } 24 public static void main(String[] args) { 25 Endpoint.publish("http://127.0.0.1:8080/WebService", new WebServiceImp()); 26 } 27 }
1、 在main方法中使用 Endpoint.publish(url,object)来发布wsdl.代码中发布webservice的地址是:http://127.0.0.1:8080/WebService,把地址复制到浏览器地址栏我们在后面加上?wsdl,可以看到如下内容:
2、此时证明webservice已经发布成功。
发布成功后,使用软件测试,是否请求访问得到结果。此处使用SoapUI Pro ,图形化界面,容易测试,新建项目,项目名称随意,inital wsdl:填入在代码生成的地址
(http://127.0.0.1:8080/WebService?wsdl)。填入参数,点击绿色的三角形发送请求,右边出现拿到结果,说明此webservice是可用的,至此,服务端完成。
二、客户端内容
1、使用jdk自带的工具,能够生成客户端代码。找到安装JDK的bin目录,就可以看到所使用的工具
wsimport的常用命令有:
3、看到已经生成了java和class文件,回到开发工具刷新一下,可以看到刚才生成的Java文件,
4、看wsdl文档的时候,最好是从下往上看,这样会比较清晰一点。wsimport根据wsdl文档内容生成代码,使用生成的代码,编写客户端代码,新建一个MyClient.java
1 package webservice; 2 3 public class WebClient { 4 public static void main(String[] args) { 5 ServiceIntService serviceIntService=new ServiceIntService(); 6 ServiceInt ServiceInt =serviceIntService.getServiceIntPort(); 7 System.out.println(ServiceInt.getInfo("1")); 8 System.out.println(ServiceInt.getInfo("2")); 9 System.out.println(ServiceInt.getInfo("4")); 10 System.out.println(ServiceInt.getInfo("100")); 11 } 12 }
5、运行MyClient,看到调用服务端的提供的服务,返回结果。