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. Word: How to Temporarily Disable Spell Check in Word

    link: http://johnlamansky.com/tech/disable-word-spell-check/ 引用: Word 2010 Click the “File” button C ...

  2. ExtJs文件上传(Ext.ux.form.FileUploadField)

    Ext.ux.form.FileUploadField = Ext.extend(Ext.form.TextField, { /**  * @cfg {String} buttonText The b ...

  3. 洛谷 P1014 Cantor表 Label:续命模拟QAQ

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...

  4. [BZOJ1072][SCOI2007] 排列prem

    Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0).例如123434有90种排列能被2整除,其中末位为2的有30种,末位为4的有60种. Input ...

  5. Codeforces Beta Round #5

    A题,无聊的题目. #include <cstdio> #include <string> #include <cstring> #include <cmat ...

  6. Codevs p1004 四子连棋

                          四子连棋 题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向 ...

  7. /var/log目录下的20个Linux日志文件功能详解

    如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...

  8. php xls 导出乱码解决方案

    采用phpmyadmin的处理方式 //这个很关键 BU 订单号 产品ID 产品名称 原价 售价 房间 成人数 小孩数 总人数 出团日期 出团天数差 客人信息 姓名 性别 年龄 总价 下单日期 订单状 ...

  9. 用atom写LaTeX文档

    下载并安装Tex Live: 下载页面 下载并安装atom:下载页面 打开atom File -> Settings -> Install 搜索并安装: language-latex la ...

  10. 递归merge排序

    package sort; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scan ...