ITPub博客

首页 > 应用开发 > Java > 好程序员分享WebService的简单使用

好程序员分享WebService的简单使用

原创 Java 作者:好程序员IT 时间:2019-06-21 15:03:42 0 删除 编辑

好程序员分享 WebService 的简单使用 , 我们在开发项目时,如果有需求需要从一个项目中去调用另一个项目中的资源,通常可以有四种方案:

1.  RESTful

2.  WebService

3.  RPC

4.  Socket

这些方式各自有其使用场景和特点,今天我们主要说一下 WebService 这种方式。

 

WebService 也是一个 web 的应用程序,可以使用 XML 的标准来描述、发布、发现、协调这些应用程序,可以用于分布式开发。

 

在开发 WebService 程序时,有一些基本概念必须要知道:

SOAP :简单对象传输协议。 SOAP 使用 XML 消息调用远程方法,这样 web services 可以通过 HTTP 协议的 post 和 get 方法与其他远程数据交互。

WSDL : WebService 描述语言。 WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于 XML 的语言,用于描述 WebService 及其函数、参数和返回值。

 

那么,究竟如何去使用 WebService 来进行两个项目数据的交互呢,接下来看一个简单的例子。

首先,新建一个工程 myServer ,在工程里新建一个 Java 类,并且开发一个基于 WebService 的服务,如下:

package  com.wl.weather;

 

import  javax.jws.WebService;

import  javax.xml.ws.Endpoint;

 

@WebService

public   class   WeatherServer  {

 

     public   String  getWeather( String  cityName){

         switch  (cityName){

             case   " 北京 " :

                 return   " 晴 " ;

             case   " 武汉 " :

                 return   " 雨 " ;

             default :

                 return   " 未知地点 " ;

        }

    }

 

     public   static  void main( String [] args) {

        Endpoint.publish( "http://192.168.52.56:9001/Service/Weather" , new   WeatherServer ());

        System.out.println( " 发布完毕 " );

    }

}

 

将工程中的 main 方法启动。

 

然后再新建一个工程 myClient 去调用 myServer 中的服务。在 myClient 中新建包 com.wl.day23.controller ,然后打开终端窗口,在终端窗口中切换到 myClient 的工程目录,并且输入如下命令:

wsimport -s . -p com.wl.day23.controller -keep http://192.168.52.56:9001/Service/Weather?wsdl  

,再看一下 myClient 项目,就会发现多了好多个接口和类,不用管这些接口和类,在 controller 包里新建一个类,并且写下如下代码:

   package  com.wl.day23.controller;

  

   public   class   IndexController   {

        public   String  list(){

           WeatherServer server = new   WeatherServerService ().getWeatherServerPort();

            String  result = server.getWeather( " 武汉 " );

           System.out.println(result);

            return   "/list" ;

       }

  

        public   static  void main( String [] args) {

            new   IndexController ().list();

       }

   }

运行 main 方法,看看有没有打印出数据,如果有显示打印数据, OK ,你成功了。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913892/viewspace-2648342/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    539
  • 访问量
    410816