WebService基本入门(基于jdk自带的jax-ws)

开发环境:

WIN7   eclipse     jdk1.7

 

正文

  人总是比较懒惰...大概一年前,我就有听说过webservice这个东西,并且有机会接触学习,然而当时并没有认真地对待,直到最近,由于公司项目中需要对接原有系统的一些接口(webservice实现),便使我步入了开始了学习webservice之路....好了,废话不扯那么多了,开始吧!

1、什么是webservice?

个人理解:一种提供接口,供客户端远程调用,服务端处理完后返回相应的数据;通过SOAP协议传输,统一了传输规则,使得异构系统之间能够通过此服务来进行通信。

webservice百度百科

2、简单实现

服务端

创建一个普通的java项目作为webservice的服务端

 

项目命名为:webservice_jax-ws

 

我们创建以下几个类(其中MyService.java为接口,MyServiceImpl.java为此接口的实现类)

 

 

首先,我们编写我们的MyService接口,分别定义了一个加法和一个减法的方法,具体代码如下:

1 package com.piglethao;
2 
3 import javax.jws.WebService;  
4 
5 @WebService  //注意导入的是javax.jws包下面的
6 public interface MyService {
7     int add(int a, int b);
8     int minus(int a,int b);
9 }

 

 

下一步,我们需要实现这些方法(在MyServiceImpl的实现类里实现),具体代码如下:

 1 package com.piglethao;
 2 
 3 import javax.jws.WebService;
 4 
 5 @WebService(endpointInterface="com.piglethao.MyService")  //此处的endpointInterface需要指定我们公布接口的全类名
 6 public class MyServiceImpl implements MyService{
 7     @Override
 8     public int add(int a, int b) {
 9         System.out.println("" +  a + " + " + b + " = " + (a + b));
10         System.out.println(a + " + " + b + " = " + (a + b));
11         return a + b;
12     }
13 
14     @Override
15     public int minus(int a, int b) {
16         System.out.println(a + " - " + b + " = " + (a - b));
17         return a - b;
18     }
19 
20 }

 

 

接下来的一步,我们就开始写启动webservice的代码了,具体代码如下:

 1 package com.piglethao;
 2 
 3 import javax.xml.ws.Endpoint;
 4 
 5 public class MyServer {
 6     public static void main(String[] args) {
 7         String address = "http://localhost:8888/ns"; //这里我们使用了本地的地址以及8888端口  后面的/ns 可以不加,个人喜好
 8         Endpoint.publish(address, new MyServiceImpl());//这里我们绑定我们的webservice对应的服务地址以及对应服务端对客户端进行处理的类
 9         System.out.println("webservice started");
10     }
11 }

 

 

接下来就可以启动webservice服务端了,开启成功可以在eclipse控制台中看到以下字样:

 

服务端开启成功后,我们可以访问刚才我们在代码中写好的http://localhost:8888/ns 再加上 ?wsdl 这个地址来访问服务端对外公布的wsdl...

 

客户端

我们使用JDK自带的wsimport这个程序根据上述的wsdl的发布地址来生成我们的客户端的框架代码:

wsimport

 

WIN+R  -->  cmd  -->  Enter  开启命令行   -->  C:\Users\wyrhero>wsimport -d E:\webservice -keep -verbose http://localhost:8888/ns?wsdl

其中-d后面需要添加的是生成客户端框架代码的路径

 

好了,回到我们的eclipse IDE,我们创建一个普通的java project,命名为: webservice_jax-ws_client   然后将上一步骤生成的代码,拷贝到src目录下

 

我们编写一个客户端,看能否调用到webservice服务端相应的接口(记得,服务端处于启动状态),创建一个MyClient2的客户端,进行如下的编码:

 1 package com.piglethao.client;
 2 
 3 import com.piglethao.MyService;
 4 import com.piglethao.MyServiceImplService;
 5 
 6 public class MyClient2 {
 7     public static void main(String[] args) {
 8         MyServiceImplService msis = new MyServiceImplService(); //这个是对应服务端的实现类吧,这里的作用我就只知道可以用来生成对应的MyService接口...
 9         MyService ms = msis.getMyServiceImplPort();  //生成MyService接口,通过此接口可以远程调用我们webservice服务端的方法
10         System.out.println("1 + 2 = " + ms.add(1, 2));
11         System.out.println("2222 - 2 = " + ms.minus(2222, 2));
12         
13     }
14 }

 

 

执行结果:

 

好了,简单的webservice入门就先到这里了,感谢您的阅读。

 

服务端代码:http://pan.baidu.com/s/1mgTf8yW

客户端代码:http://pan.baidu.com/s/1SJZLc

 

posted @ 2016-03-23 00:07  喝维他柠檬茶的猪仔豪  阅读(489)  评论(0编辑  收藏  举报