1. 创建服务端
第一步:File–>New–>Project;我这里使用原生JDK来开发Web Service Server服务,所以不勾选Generate Sample Server Code,意思是不使用Apache Axis,也不生成Apache Axis代码。选中Set up library later表示暂时不设置依赖包。

第二步:输入项目名称

项目结构如下:

PublishWebService.java
1 package com.suns.webservice.server;
2
3 import com.suns.webservice.server.service.impl.HelloServiceImpl;
4
5 import javax.xml.ws.Endpoint;
6
7
8 public class PublishWebService {
9
10 public static void main(String[] args) {
11 String adress = "http://127.0.0.1:8080/webservice/sayHello";
12 Endpoint.publish(adress, new HelloServiceImpl());
13 System.out.println("web service服务端发布成功");
14 }
15 }
HelloService.java
1 package com.suns.webservice.server.service;
2
3 import javax.jws.WebMethod;
4 import javax.jws.WebService;
5
6 @WebService
7 public interface HelloService {
8 @WebMethod
9 String sayHello(String name);
10 }
HelloServiceImpl.java
1 package com.suns.webservice.server.service.impl;
2
3 import com.suns.webservice.server.service.HelloService;
4
5 import javax.jws.WebService;
6
7 @WebService
8 public class HelloServiceImpl implements HelloService {
9 @Override
10 public String sayHello(String name) {
11 System.out.println("server sayHello()" + name);
12 return "Hello" + name;
13 }
14 }
运行PublishWebService中main函数,发现web service服务正常持续运行

访问http://127.0.0.1:8080/webservice/sayHello?wsdl获取wsdl文件,把wsdl文件导入到SoapUI,访问web service服务。结果如下:

2. 创建web service客户端
第一步:File–>New–>Project;我这里使用原生JDK来开发Web Service Client服务,所以不勾选Generate Sample Server Code,意思是不使用Apache Axis,也不生成Apache Axis代码。选中Set up library later表示暂时不设置依赖包。

第二步:输入项目名称

项目结构如下:

使用IDEA自带CMD功能进入到src,通过JDK自带wsimport功能来生成客户端代码
D:\Workspace\IDEA\web-service-client\src>wsimport -keep http://127.0.0.1:8080/webservice/sayHello?wsdl

新建WebServiceClient.java文件来访问服务端代码
1 package com.suns.webservice.client;
2
3 import com.suns.webservice.server.service.impl.HelloServiceImplService;
4 import com.suns.webservice.server.service.impl.HelloServiceImpl;
5
6 public class WebServiceClient {
7 public static void main(String[] args) {
8 HelloServiceImplService factory = new HelloServiceImplService();
9 HelloServiceImpl helloServiceImplPort = factory.getHelloServiceImplPort();
10 String response = helloServiceImplPort.sayHello("suns");
11 System.out.println(response);
12 }
13 }
服务端测试结果:能正常收到客户端传过来suns,并打印

客户端测试结果:能正常收到服务端返回的结果并打印

来源:https://www.cnblogs.com/kesuns/p/12583674.html