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

客户端也成功了。

猜你喜欢

转载自www.cnblogs.com/heqiyoujing/p/9564864.html