当前位置 : 主页 > 网页制作 > Nodejs >

webservice 入门笔记一

来源:互联网 收集:自由互联 发布时间:2021-06-24
下面几篇是我在看webservice的学习视频时的笔记,比较随意和粗糙。只是希望有个记录的地方而已。视频应该是来自: http://www.konghao.org 我个人感觉webservice 过于繁琐,完全可以用http接口
下面几篇是我在看webservice的学习视频时的笔记,比较随意和粗糙。只是希望有个记录的地方而已。视频应该是来自: http://www.konghao.org

我个人感觉webservice 过于繁琐,完全可以用http接口的方式取代。但是鉴于有很多公司还在使用它,有时候你要和一些第三方交互时有可能就需要和webservice打交道。那么,还是必要了解一下它的。

首先,这第一篇来看看怎么创建一个webservice。

首先,创建server端。新建一个java工程,名字叫 WebServiceServer

 

新建一个接口 MyServiceInter

package com.zhutulang.service;
 
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
 
@WebService
public interface MyServiceInter {
 
         @WebResult(name="addResult")
         publicint add(@WebParam(name="a")int a, @WebParam(name="b")intb);
}
 


接口的实现类 MyServiceInterImpl

packagecom.zhutulang.service;
 
importjavax.jws.WebService;
 
@WebService(endpointInterface="com.zhutulang.service.MyServiceInter")
public class MyServiceInterImpl implements MyServiceInter {
 
   @Override
   public int add(int a, int b) {
      System.out.println(a+"+"+b+"="+(a+b));
      return a+b;
   }
 
}


 

注意使用的注解。

 

然后是MyServer

packagecom.zhutulang.service;
 
importjavax.xml.ws.Endpoint;
 
public class MyServer {
 
   public static void main(String[] args) {
      String address = "http://localhost:8888/myservice";
      Endpoint.publish(address, new MyServiceInterImpl());
        System.out.println("publish success!");
   }
}


 

将服务发布在http://localhost:8888/myservice

 

运行后打印出publish success!

在浏览器中输入:http://localhost:8888/myservice?wsdl

出现下图的 xml,则表示已经发布成功。

 

 

 

接下来,我们用wsimport来生成wsdl的客户端代码。打开cmd窗口,输入:

wsimport -d E:\tmp -keep -encoding utf-8-verbose http://localhost:8888/myservice?wsdl

生成的代码保存在E盘的tmp文件夹下。至于wsdl的各个参数,可以自行查看。

然后,我们创建客户端工程,新建一个java工程,名字叫WebServiceClient。将E盘tmp目录下生成的代码拷过去。

 

在该包下,新建MyClient 类,然后我们就可以这样访问服务了:

packagecom.zhutulang.service;
 
public class MyClient {
 
   public static void main(String[] args) {
         MyServiceInterImplService myService = new MyServiceInterImplService();
         MyServiceInter myServiceInter = myService.getMyServiceInterImplPort();
         System.out.println(myServiceInter.add(12, 55));
   }
}



Wsdl文件的结构:

type: 用来定义访问的类型

message: soap消息

portType : 指定服务接口

operation: 方法名

    input: 入参

    output: 出参

binding: 指定消息传递所使用的格式

service : 指定服务发布的名称

 

 

可以使用tcpmon 来监控webservice的请求。

 


相关的代码下载:http://download.csdn.net/detail/zhutulang/9487929

网友评论