基于JAX-WS技术编写简单的Web Service程序

简单的基于JAX-WX技术编写Web Service程序

笔者是一名在校学生,应学校实验要求需要自学JAX-WX技术,今天通过搜寻资料初步了解了基于idea编写简单的Web Service程序,也是我的第一篇博客,下面是详细步骤:

1.创建一个webservice接口:

创建一个Counter.java:

package com.simon;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

/**
 * @author SimonDing
 * @date 2021/4/12 15:28
 */
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Counter  {

    @WebMethod
    public int Counter1();

    @WebMethod
    public int Counter2(int num);

}

接口中有两个简单的方法Counter1和Counter2,注意在两个方法上面加上@WebMethod注释以及在类开头要注明:@WebService表明这是一个webservice

2.创建一个实现类实现webservice接口:

package com.simon.impl;

import com.simon.Counter;

import javax.jws.WebService;


/**
 * @author SimonDing
 * @date 2021/4/12 15:27
 */
@WebService(endpointInterface = "com.simon.Counter")//这是是所创建的Counter接口的路径
public class CounterImpl implements Counter {


    @Override
    public int Counter1() {
        return 5;
    }

    @Override
    public int Counter2(int num) {
        return num;
    }
}

3.为了模拟webservice服务器,编写一个包含main函数的java类,我将其命名为Server:

package com.simon.client;

import com.simon.impl.CounterImpl;

import javax.xml.ws.Endpoint;

/**
 * @author SimonDing
 * @date 2021/4/12 15:37
 */
public class Server {
    public static void main(String[] args) {
        Endpoint.publish("http://127.0.0.1:8080/com.simon.Counter",new CounterImpl());
    }
}

4.最后是实现访问客户端Client.java:

package com.simon.client;

import com.simon.Counter;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * @author SimonDing
 * @date 2021/4/12 15:37
 */
public class Client {
    private static final String WS_URL = "http://127.0.0.1:8080/com.simon.Counter?wsdl";
    public static void main(String[] args) throws MalformedURLException {
        URL url=new URL(WS_URL);
        QName qname = new QName("http://impl.simon.com/", "CounterImplService");
        Service service = Service.create(url, qname);
        Counter counter=service.getPort(Counter.class);


        System.out.println(counter.Counter1());
        System.out.println(counter.Counter2(5));
    }
}

编写完后通过先启动Server.java 然后再启动Client.java你就会看到控制台输出:

posted @ 2021-04-13 09:35  丁建  阅读(230)  评论(0)    收藏  举报