WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

XML+XSD, SOAP 和 WSDL 是构成WebService平台的三大技术。

SOAP = HTTP协议 + XML数据格式

一条SOAP消息就是一个普通的XML文档

入门文档介绍:

http://blog.csdn.net/wooshn/article/details/8069087/

http://blog.csdn.net/WOOSHN/article/details/8145763

参考示例:

http://www.cnblogs.com/coshaho/p/5105364.html

几种方式:

1.使用命令cxf构建WebService客户端

    客户端:

    

       JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();
svr.setServiceClass(HelloWoldClientServiceI.class);
svr.setAddress("http://localhost:8080/Service/ServiceHello");
HelloWoldClientServiceI serviceHello = (HelloWoldClientServiceI) svr.create();
System.out.println(serviceHello.getValue("Hello hahahahahaha"));
    或者      JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();

       String wsdlUrl = "http://localhost:8080/Service/ServiceHello?wsdl";
       Client client = clientFactory.createClient(wsdlUrl);
       Object[] result = client.invoke("getValue", "Hello web service");
       System.out.println(result[0]);

服务端:

  

       JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();

        // Web服务的地址
factoryBean.setAddress("http://localhost:8081/hello"); // Web服务对象调用接口
factoryBean.setServiceClass(HelloWorldServiceImpl.class);
Server server = factoryBean.create();
server.start();

2.使用命令wsimport构建WebService客户端

  http://www.cnblogs.com/yisheng163/p/4524808.html

JaxWsProxyFactoryBean 与 JaxWsDynamicClientFactory

1、 JaxWsProxyFactoryBean

   简介:调用方式采用了和RMI类似的机制,即客户端直接调用服务器端提供的服务接口(interface),CXF通过运行时代理生成远程服务的代理对象,在客户端完成对webservice的访问;几个必填的字段:setAddress-这个就是我们发布webservice时候的地址,保持一致
   缺点:这 种调用service的好处在于调用过程非常简单,就几行代码就完成一个webservice的调用,但是客户端也必须依赖服务器端的接口,这种调用方式 限制是很大的,要求服务器端的webservice必须是java实现--这样也就失去了使用webservice的意义
 
  1. public class Client {
  2. public static void main(String[] args) {
  3. JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
  4. bean.setServiceClass(HelloWorldService.class);
  5. bean.setAddress("http://localhost:9090/helloWorldService");
  6. HelloWorldService helloWorldService = (HelloWorldService)bean.create();
  7. String result = helloWorldService.sayHello("Kevin");
  8. System.out.println(result);
  9. }
 
2、JaxWsDynamicClientFactory
     简介:只要指定服务器端wsdl文件的位置,然后指定要调用的方法和方法的参数即可,不关心服务端的实现方式。
  1. public class Client3 {
  2. public static void main(String[] args) throws Exception {
  3. JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
  4. Client client = clientFactory.createClient("http://localhost:9090/helloWorldService?wsdl");
  5. Object[] result = client.invoke("sayHello", "KEVIN");
  6. System.out.println(result[0]);
  7. }
  8. }
 
 
3、JaxWsServerFactoryBean

用JaxWsServerFactoryBean发布,需要独立的jetty包。

WebService 学习的更多相关文章

  1. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  2. [未完成]WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

  3. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  4. webservice学习01:wsdl文档结构

    webservice学习01:wsdl文档结构 wsdl文档结构 WSDL文档示例 <wsdl:definitions xmlns:xsd="http://www.w3.org/200 ...

  5. WebService学习总结(转)

    原文地址: WebService学习总结(一)——WebService的相关概念 WebService学习总结(二)——WebService相关概念介绍 WebService学习总结(三)——使用JD ...

  6. 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念

    wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...

  7. WebService学习之旅(三)JAX-WS与Spring整合发布WebService

    Spring本身就提供了对JAX-WS的支持,有兴趣的读者可以研究下Spring的Spring-WS项目,项目地址: http://docs.spring.io/spring-ws/sites/1.5 ...

  8. Java WebService学习笔记 - Axis进阶(二)

    上一篇  Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...

  9. Java WebService学习笔记 - Axis(一)

    WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...

  10. WebService学习总结(六)--CXF 与Spring结合+tomcat发布

    该项目在上文   WebService学习总结(四)--基于CXF的服务端开发  的基础上修改为spring上发布的webservice接口 1.新建web project 工程 2.导入spring ...

随机推荐

  1. <构建之法>第十三章到十七章有感以及这个项目读后感

    <构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...

  2. 将类似 12.56MB 36.89KB 转成 以K为单位的数字【备忘】

    select case RIGHT(RESOURCE_SIZE,2) when 'MB' THEN SUBSTRING_INDEX(RESOURCE_SIZE,'MB',1)*1024 ELSE SU ...

  3. ACM 找点

    找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2   描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你 ...

  4. NOIp 2013 #1 积木大赛 Label:有趣的模拟

    题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...

  5. [转]as3事件流机制彻底理解

    题记: 看过网上一些as3事件流的教程,觉得大多都讲得不甚清楚,让人不能直观的理解事件流.而这篇教程以将事件流过程比喻成捕鱼过程,形象简单. 在此基础上对于as3事件流总算有了全面的理解.事件流机制说 ...

  6. 集合 ArrayList 类

    集合的基本信息: System.Collections   系统类中的收藏类,定义各种对象(如列表,队列,位数组,哈希表和字典)的集合 常用的集合为ArrayList类:特殊集合一般会用到Queue队 ...

  7. Linux_初识

    一.什么是 Linux  ♦ 试说明 Unix 与 Linux 的历史 Multics 系统:由Bell(贝尔实验室).MIT(麻省理工学院)与GE(美国通用电器)合作开发的一个系统: 1969:K. ...

  8. val, lazy, def

    val strVal = scala.io.Source.fromFile("test.txt").mkString //在strVal被定义的时候获取值,如果test.txt不存 ...

  9. Spring.Net 配置文件

    方法一. 直接在程序配置文件中配置 <configuration> <configSections> <sectionGroup name="spring&qu ...

  10. bootstarp 样式细节(tooltip布局)

    在写bootstarp中发现的几个小样式问题,记录以后可能用的到 1.有时候我们想要超过td长度后自动显示省略号,我们会使用 table { table-layout: fixed; } table ...