基于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你就会看到控制台输出:


浙公网安备 33010602011771号