注:csdn排版太麻烦,放在git上了。
地址:https://github.com/liangjuntao/cxf_spring_struts.git

Web Service简介:
不是一种框架、更不是一种技术
而是一种跨平台、跨语言的规范
Web Wervice应用场景:
为了解决不同平台、不同语言所编写的应用之间如何调用。
如:Linux平台下用java写的程序调用win平台下c#写的应用
Web Service集中解决:
-远程调用
-跨平台调用
-跨语言调用
Web Service实际中用途:

1.同一个公司的新、旧系统的整合。
如:Linux上的java应用,去调用win平台的C#应用

2.不同公司的业务整合。
如:淘宝订单中显示的物流信息;
这个信息是物流公司提供的接口,淘宝去调用这个接口,把物流展示出来。以此把两个公司的系统整合在一起。
解决了不同公司系统平台不同,语言不同的问题。

3.内容聚合。
如:一个应用提供股票行情,外汇行情,天气预报,编程语言排行等等
这个内容聚合的应用,需要调用大量不同的平台。

……

Web Service框架:
Axis(apache) –> Axis2(apache)
XFile –>XFire + Celtrix = CXF

XFile : 本身就是一个Service框架
Celtrix:ESB框架

ESB简介:
SOA(面向服务的架构)
要点:Service1 ,Service2 ,Service3—所有组件都是“即插即用”的。
IBM提倡的SOA架构,系统以“组装电脑”的方式来开发软件。
SOA两个要素:
1.各种提供服务的组件。(Web Service)
2.企业服务总线(Enterprise Service Bus ,ESB)
注:
CXF号称是SOA框架。
CXF内置了一个jetty web服务器。

Cxf:设置环境变量
CXF_HOME=D:\ apache-cxf-2.7.18
CLASSPATH=D:\ apache-cxf-2.7.18\lib
PATH中= D:\ apache-cxf-2.7.18\bin

使用CXF开发web Service开发服务端:
每个webService组件需要两个部分:接口和实现类。
(1)开发一个web service业务接口,该接口要用@WebServicex修饰。
(2)开发一个Web Service实现类,该接口也要用@WebServicex修饰。
其中要指定两个参数:
endpointInterface :实现的接口名称
serviceName :起的service名字
(3)发布WebService

代码见下:
类结构图:

业务接口:

package com.liangjt.app.webService;import javax.jws.WebService;
/*** 想要暴露出去的接口* @author Administrator**/
@WebService
public interface HelloWorld {String sayHi(String name);
}

实现类:

package com.liangjt.app.webService.Impl;import java.util.Date;import javax.jws.WebService;import com.liangjt.app.webService.HelloWorld;/*** 比较简单的实现类* * @author Administrator**/
@WebService(endpointInterface = "com.liangjt.app.webService.HelloWorld", serviceName = "HelloWorld")
public class HelloWorldWs implements HelloWorld {@Overridepublic String sayHi(String name) {return name + ",您好。现在时间是:" + new Date();}}

发布:

package com.liangjt.app.main;import javax.xml.ws.Endpoint;import com.liangjt.app.webService.Impl.HelloWorldWs;/*** WsMain以RunAs java Application即可发布这个接口* * @author Administrator**/
public class WsMain {public static void main(String[] args) {HelloWorldWs hw = new HelloWorldWs();// 调用Endpoint的发布web service方法// 第一个参数是访问的地址,第二个参数是实现类Endpoint.publish("http://127.0.0.1/webservice", hw);System.out.println("web Service暴露成功!");}}

发布成功:

使用CXF开发web Service开发客户端:
(1)调用cxf调用的wsdl2java工具,根据wsdl文档生成相应的java代码。
Wsdl – web service definition language
任何语言实现了web service,都需要提供并暴露wsdl文档
(2)找到wsdl2java所生成类的中,一个继承了Service的类。
该类的实例可以当成工厂来使用。
(3)调用该类的getxxxxPort()方法。

代码如下:
注:之前的server端命名变更由ws_WebService,变化为ws_server;端口变更为9999;
(1)如图调用工具

(2)客户端项目自己建,这些代码都是调用工具生成的,所以不粘贴了

(3)生成远端代理,调用方法

package com.liangjt.app.clientMain;import com.liangjt.app.webservice.impl.HelloWorld;public class ClientMain {public static void main(String[] args) {HelloWorld factory = new HelloWorld();// hw是远程web service的代理com.liangjt.app.webservice.HelloWorld hw = factory.getHelloWorldWsPort();System.out.println(hw.sayHi("zhangsan"));}}

(4)运行结果

zhangsan,您好。现在时间是:Tue Jun 06 00:29:10 CST 2017

以上作为学习的总结。

期间遇到的异常:
1.accessExternalSchema属性设置的限制而不允许file访问
参考:Create a file named jaxp.properties (if it doesn’t exist) under /path/to/jdk1.8.0/jre/lib and then write this line in it:
javax.xml.accessExternalSchema = all

2.Cannot create a secure XMLInputFactory
参考:http://blog.csdn.net/java_min/article/details/9833815

使用CXF开发webService客户端相关推荐

  1. 使用CXF框架开发WebService客户端

    上一篇讲了使用cxf开发了webservice服务器端接口,这篇我们来开发webservice客户端更多资源访问www.yyjava.com 然后我们要用CXF给我们提供的工具wsdl2java 来根 ...

  2. 使用cxf开发webservice应用时抛出异常

    在使用cxf开发webservice应用时,报出了类似下面的错误 JAXB: [javax.xml.bind.UnmarshalException: unexpected element (uri:& ...

  3. cxf开发webservice服务端怎么返回固定的报文格式_Spring boot webservice怎么玩? 第277篇...

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列?) WebService SOAP概述 - 第275篇 WSDL是什么"Lese" - 第276篇 一.前言 当官不为民做主 ...

  4. Java笔记-使用CXF开发WebService服务器

    这里使用CXF开发WebService,要引入下面这个Maven <dependency><groupId>org.apache.cxf</groupId>< ...

  5. java webservice超时设置_[CXF]Spring下设置CXF的WebService客户端超时时长

    评论 # re: [CXF]Spring下设置CXF的WebService客户端超时时长 2010-01-05 21:47 Emily32Av A kind of good information a ...

  6. WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

    现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService ...

  7. [转] WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

    以下文章来自   http://www.blogjava.net/jacally/articles/186655.html 现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了 ...

  8. Spring boot+CXF开发WebService Demo

    本文转载自: https://www.cnblogs.com/fuxin41/p/6289162.html 作者:fuxin41 转载请注明该声明. 最近工作中需要用到webservice,而且结合s ...

  9. 关于用SoapUI集成CXF生成WebService客户端,以及测试的流程和问题的解决

    项目环境 1.springBoot框架的web系统 2.jdk1.8 3.windows 10 集成 IDEA开发环境 4.SoapUI 5.4.0软件(直接去百度搜索下载) 5.apache-cxf ...

最新文章

  1. memset()函数用法及其作用
  2. 7.1.1 [Enterprise Library]缓存应用程序块场景和目标
  3. python 调用c++ boost
  4. 【安全漏洞】某CMS后台防护逻辑漏洞导致GETSHELL
  5. 异常处理---SpringMVC学习笔记(十)
  6. 【自己给自己题目做】之一:椭圆可点击区域
  7. JUnit单元测试笔记
  8. AngularJS中的过滤器(filter)
  9. “东哥”之后,京东再申请“强东”商标
  10. 特斯拉亚洲最大超级充电站正式运营,可同时提供20辆车的快充服务
  11. 【回归预测】基于matlab鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
  12. linux w3m命令
  13. 暮光之城3蓝光BD高清下载
  14. 支持向量机(Support Vector Machine,SVM)
  15. C++---常用printf输出格式
  16. Hello!GitHub 好用好玩值得收藏的开源项目集合~
  17. koa2入门之使用koa-generator生成koa2项目
  18. nginx服务器access_log日志详解
  19. 开源SSL加快器的构建
  20. Cy5/FITC/CY3/CY7-Nab-PTX ,荧光标记白蛋白结合型紫杉醇

热门文章

  1. excel : 自定义条件格式设置
  2. python关键字替换
  3. 图采用邻接表存储,设计一个算法,判断顶点i和顶点j(i!=j)之间是否有路径
  4. 基于ibeacons签到系统
  5. linux使用---1.linux使用记录
  6. 海鸥表表带太长了怎么拆_海鸥表怎么拆表链
  7. 马良建模学习笔记——软包制作十二
  8. Spring Cloud详细讲解
  9. 论坛丢失如何找回_如何找到丢失的AirPods
  10. 双绞线和二进制转10进制