zoukankan      html  css  js  c++  java
  • WebService学习二

    了解了webservice的基础知识之后,我们来编写一个服务端和客户端,进行测试。

    服务端

    先写一个接口:

    @WebService
    public interface WebServiceI {
    
        //使用@WebMethod注解标注WebServiceI接口中的方法
        @WebMethod
        String sayHello(String name);
    
        @WebMethod
        String save(String name,String pwd);
    }

    再写它的实现类:

    @WebService
    public class WebServiceImpl implements WebServiceI {
    
        @Override
        public String sayHello(String name) {
            System.out.println("WebService sayHello "+name);
            return "sayHello "+name;
        }
    
        @Override
        public String save(String name, String pwd) {
            System.out.println("WebService save "+name+", "+pwd);
            return "save Success";
        }
    }

    我建立的是spring boot 项目,在启动项里面发布:

    @SpringBootApplication
    public class WebServiceApplication {
    
        public static void main(String[] args) throws ServletException{
            new WebServiceApplication().init();
            SpringApplication.run(WebServiceApplication.class, args);
        }
    
        public static void init() throws ServletException {
            //WebService的发布地址
            //访问的时候需要在add后面加上?wsdl
            String address = "http://192.xxx.15.117:8088/WS_Server/WebService";
            //发布WebService,WebServiceImpl类是WebServie接口的具体实现类
            Endpoint.publish(address , new WebServiceImpl());  //使用JDK发布。
            System.out.println("使用WebServicePublishServlet发布webservice成功!");
        }
    }

    启动项目,webservice服务端就发布成功了。

    客户端

    重新建立一个spring boot项目,cmd进入java目录,执行命令: wsimport -keep http://192.xxx.15.117:8088/WS_Server/WebService?wsdl ,会自动生成代码。

    除了里面圆圈圈出来的是启动项,其他都是自动生成的。

    建立一个controller:

    @RestController
    public class Controller {
    
        @RequestMapping(value = "/sayHello")
        public String sayHello(){
            WebServiceImplService factory = new WebServiceImplService();
            //通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的
            WebServiceImpl wsImpl = factory.getWebServiceImplPort();
            //调用WebService的sayHello方法
            String resResult = wsImpl.sayHello("heqiyoujing");
            return resResult;
        }
    
        @RequestMapping(value = "/save")
        public String save(){
            WebServiceImplService factory = new WebServiceImplService();
            //通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的
            WebServiceImpl wsImpl = factory.getWebServiceImplPort();
            //调用WebService的sayHello方法
            String resResult = wsImpl.save("heqiyoujing","123");
            return resResult;
        }
    }

    启动项目,访问接口:

    http://localhost:9000/sayHello      返回:sayHello heqiyoujing

    http://localhost:9000/save   返回:save Success

    客户端也成功了。

  • 相关阅读:
    student
    super
    java 浮点数
    视图
    日期转换函数
    左外连接,右外连接,全外连接,自然连接,自连接区别
    Python中sys.argv[ ]的用法
    0 Scala
    统计字符串字符个数
    3个链表排序整合到一起
  • 原文地址:https://www.cnblogs.com/heqiyoujing/p/9564864.html
Copyright © 2011-2022 走看看