irpas技术客

使用SpringBoot创建WebService(包含服务端和客户端)_炫风丶小子_springboot webservice 服务端

网络 5619

前言

步骤

一、创建2个SpringBoot工程(一个客户端,一个服务端)

二、服务端代码

1、服务端结构

2、服务端pom文件

3、服务端application.properties

4、服务端创建一个User实体类

5、服务端创建一个接口

6、服务端创建一个接口的实现类

7、服务端发布服务

8、服务端测试

三、客户端代码

1、客户端结构

2、客户端pom文件

3、客户端application.properties

4、客户端创建一个User实体类

5、利用wsimport命令生成客户端代码

6、代码拷贝到客户端

7、编写一个controller

8、客户端测试



前言

WebService基本概念这里不说了,网上很多。我就直接进入主题了

步骤 一、创建2个SpringBoot工程(一个客户端,一个服务端)

创建步骤我这里就不说了,用IDEA创建一个SpringBoot工程不会的可以自己百度。

二、服务端代码 1、服务端结构

2、服务端pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> 3、服务端application.properties server.port=9001 4、服务端创建一个User实体类 public class User implements Serializable { private int id; private String name; private int age; public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 5、服务端创建一个接口 @WebService public interface UserWebService { @WebMethod String getUserById(@WebParam(name = "id") Integer id); } 6、服务端创建一个接口的实现类 @WebService public class UserWebServiceImpl implements UserWebService { @WebMethod @Override public String getUserById(@WebParam(name = "id") Integer id) { //一般数据都是从数据库查找,我这里直接伪造一下 User user1 = new User(1, "Tom", 20); User user2 = new User(2, "Mary", 18); User user3 = new User(3, "Lucy", 19); List<User> userList = new ArrayList<>(); userList.add(user1); userList.add(user2); userList.add(user3); for (int i = 0; i < userList.size(); i++) { //判断一下用户输入的id是否可以匹配上某个User的id if (userList.get(i).getId() == id) { //找到用户直接转成json返回去 String json = JSONArray.toJSON(userList.get(i)).toString(); return json; } } //未找到直接返回一个错误消息 return "该id用户不存在"; } } 7、服务端发布服务 @SpringBootApplication public class WebserviceServerApplication { public static void main(String[] args) { SpringApplication.run(WebserviceServerApplication.class, args); //这里的接口不能和application.properties中的port一样,不然会报错 String url = "http://localhost:8088/UserWebService"; Endpoint.publish(url,new UserWebServiceImpl()); System.out.println("服务发布成功"); } 8、服务端测试

浏览器输入:http://localhost:8088/UserWebService?wsdl? ?(后面的?wsdl一定要加),出现这个就说明发布成功了。

三、客户端代码 1、客户端结构

2、客户端pom文件

和服务端的一样就行了

3、客户端application.properties server.port=9002 4、客户端创建一个User实体类

和服务端User类一样,这里不贴了。

5、利用wsimport命令生成客户端代码

(wsimport有些命令参数,例如可以指定包结构等等,感兴趣的自己去搜一下)

随便找个空文件夹利用dos命令进入到该文件夹,或者直接在该文件夹下按住Shift+鼠标右击,选择在此处打开命令窗口

输入命令:

wsimport -s . http://localhost:8088/UserWebService?wsdl

6、代码拷贝到客户端

客户端随便创建一个包将选中的2个文件拷贝进去

引入相应的class,注意UserWebServiceImpl中的ObjectFactory别引错包了(正确:import com.oracle.xmlns.internal.webservices.jaxws_databinding.ObjectFactory;),不然会报错。

7、编写一个controller @RestController public class UserController { @GetMapping("/getUserById/{id}") public String getUserById(@PathVariable("id") Integer id){ UserWebServiceImplService userWebServiceImplService = new UserWebServiceImplService(); //获取服务实现类 UserWebServiceImpl port = userWebServiceImplService.getPort(UserWebServiceImpl.class); //获取服务的方法 String result = port.getUserById(id); return result; } } 8、客户端测试

打开浏览器输入url测试一下


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #springboot #webservice #服务端