webservice的应用--java+maven项目

来源:互联网 发布:电缆计算软件 编辑:程序博客网 时间:2024/04/29 14:14


     WebService是一种跨编程语言和跨操作系统平台的远程调用技术。所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如淘宝网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,就是所谓的SOA应用。

    WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。

      个人感受:公司开发的一个系统关联了很多其他系统,我负责了关联其中两个系统,一个是作为服务端,由另一个系统调用;一个是作为客户端,调用另一个系统。这也是我第一次接触webservice,感觉很有意思,很神奇,在这里记录下我使用的过程。

一、开发服务端

   作为服务端的开发,是其他系统调用我们系统的接口,向我们传数据,我使用了cxf技术

1.在pom.xml里加入cxf的引入

  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-frontend-jaxws</artifactId>
   <version>2.7.2</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http</artifactId>
   <version>2.7.2</version>
  </dependency>
  <dependency>
   <groupId>org.apache.cxf</groupId>
   <artifactId>cxf-rt-transports-http-jetty</artifactId>
   <version>2.7.2</version>
   <scope>provided</scope>
  </dependency>

2.创建webservice的接口


3.配置applicationContext.xml

   


其中,id是方法名;implementor是接口路径;address是客户端调用是需要用到的,这里是按照个人想法起的全称。


4.在本地写测试方法,测试是否能连通

/*
  * webservice测试
  * @param args
  */
 public static  void main(String args[]){
  JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean(); 
        factoryBean.setServiceClass(WebServiceManager.class); 
        factoryBean.setAddress("http://localhost:8880/cps-server/webservice/exchange?wsdl");  
        WebServiceManager readerService = (WebServiceManager)factoryBean.create(); 
        EventBean bean = new EventBean();
        bean.setEvent_System_Name(new String("集中监控"));
        bean.setHost_Name(new String("F3-10-11展华监控数据库主机"));
        bean.setEvent_Desc(new String("表空间使用率超过100%"));
        bean.setEvent_Level(new String("5"));
        bean.setEvent_TypeF(new String("databa"));
        bean.setEvent_TypeF_Name(new String("表空间使用率"));
        bean.setHost_IP(new String("192.210.0.11"));
        bean.setEvent_Level_Name(new String("严重告警"));
        bean.setEvent_Happend_Time(new String("2016-10-27 15:00:00"));
       
        int i = readerService.createMonitorInfor(bean); 
        System.out.println("成功没???????????????????????"+i+"++++++++++++++++++++");  


 }




二、开发客户端

    作为客户端,我们是调用其他系统的接口,我当时是看了他们的接口,寻问了他们webservice所使用的技术,他们使用的是另外一种技术---axis,所以我又了解了一种技术,总体感觉还是这个技术没有cxf好用,太复杂。


1.在pom.xml里引入axis的包

<dependency>
   <groupId>org.apache.axis</groupId>
   <artifactId>axis</artifactId>
   <version>1.4</version>
  </dependency>
  <dependency>
   <groupId>javax.xml</groupId>
   <artifactId>jaxrpc-api</artifactId>
   <version>1.1</version>
  </dependency>

2.在客户端创建一份服务端的接口文件(不需要实现),拷贝过来就行

3.在客户端创建一份jws格式的文件,从服务端拷贝过来

4.在客户端需要用到的地方调用即可,测试是否能通,和上面的测试方法类似

其中,targetEendPoint是服务端接口url;space是服务端接口所在包;



1 0
原创粉丝点击