webservice学习笔记(一)

来源:互联网 发布:单级放大电路实验数据 编辑:程序博客网 时间:2024/05/22 07:09

总结一下今天学的webservice,如何快速的搭建一个webservice?
(1)创建一个接口

package com.mywebservice;import javax.jws.WebService;@WebServicepublic interface IMyWebservice {    public int add(int a,int b);    public int minus(int a,int b);}

(2)创建接口的实现类:

package com.mywebservice.impl;import javax.jws.WebService;import com.mywebservice.IMyWebservice;@WebService(endpointInterface="com.mywebservice.IMyWebservice")public class MyWebservice implements IMyWebservice {    @Override    public int add(int a, int b) {        System.out.println(a+"+"+b+"="+(a+b));        return a+b;    }    @Override    public int minus(int a, int b) {        System.out.println(a+"-"+b+"="+(a-b));        return a-b;    }}

(3)创建服务

package com.mywebservice.server;import javax.xml.ws.Endpoint;import com.mywebservice.impl.MyWebservice;public class MyWebserviceServer {    public static void main(String[] args) {        String address = "http://localhost:8888/webservice";        Endpoint.publish(address, new MyWebservice());    }}

此时,运行该MyWebService程序,并且在浏览器地址栏输入其中的address地址,就会出现如下的信息:
这里写图片描述
(4)在(3)中的地址后面添加?wsdl,就会出现下面的信息:
这里写图片描述
其中包括你的targetNamespace和name
(5)在客户端做测试,代码如下:

package com.mywebservice.client;import java.net.MalformedURLException;import java.net.URL;import javax.xml.ws.Service;import com.mywebservice.IMyWebservice;public class TestClient {    public static void main(String[] args) {        try {            URL url = new URL("http://localhost:8888/webservice?wsdl");            javax.xml.namespace.QName sname = new javax.xml.namespace.QName("http://impl.mywebservice.com/", "MyWebserviceService");            Service service = Service.create(url, sname);            IMyWebservice ms = service.getPort(IMyWebservice.class);            System.out.println(ms.add(19, 21));        } catch (MalformedURLException e) {            e.printStackTrace();        }    }}

运行该测试代码,会在console上显示40,说明在没有创建MyWebservice对象的情况下,执行了里面的方法,是通过webservice接口实现的。

0 0
原创粉丝点击