前言
步骤
一、创建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 #服务端