注: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. opencv 计数后不动了 训练模型时_用OpenCV和深度学习进行年龄识别
  2. Akka框架——第一节:并发编程简介
  3. delphi 安卓图片保存数据库_delphi 把图片存入数据库
  4. C++开发环境搭建_需要学习的内容介绍_写第一个C++程序---C++语言工作笔记008
  5. QItemSelectionModel——视图选择
  6. [转]MapX 操作总结
  7. cmake practice学习记录
  8. 统计网站页面的访问量
  9. 推荐一款网络测试APP-网络百宝箱
  10. 新版微信支持鸿蒙os,微信突然宣布!“新功能”全面爆发,鸿蒙OS措手不及
  11. 学习笔记 #pragma GCC diagnostic push 与 #pragma GCC diagnostic pop 的使用
  12. 变身后是一只火鸟的机器人_中生代机器人 第一章 丛林求生历险记 05 (05)一-望书阁...
  13. 谈谈自己的可转债策略(包含策略代码)
  14. 【ICLR 2023】Diffusion Models扩散模型和Prompt Learning提示学习:prompt-to-prompt
  15. 最美中国字|硬笔书法“崇”字这样写才好看,建议收藏!
  16. 智能语音输入厂家对比 百度语音 阿里语音 华为语音 讯飞灵云智声
  17. 如何度量测试开发的价值产出?
  18. Android运行ListView的代码,Android ListView组件详解及示例代码
  19. 匹兹堡大学申请条件计算机科学,匹兹堡大学计算机科学排名第62(2020年TFE美国排名)...
  20. 限量版 情感智能机器人Pepper今天发售了!

热门文章

  1. 原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个)
  2. 【云原生 | 从零开始学istio】五、istio灰度发布以及核心资源
  3. 鸿蒙寰宇什么意思,玄幻:从鸿蒙造化体开始
  4. JavaScript知识之 浅拷贝与深拷贝
  5. Swift 短信验证码
  6. WF4.0 基础篇 (二十六) Interop调用WF3.X的Activity
  7. navicat怎么查看数据库的url_怎么使用Navicat连接数据库?Navicat打开数据库文件的方法...
  8. 各位,醒醒,这个是我的房子!
  9. 关于向Linux上传文件状态错误问题
  10. 手机上怎么打开python文件_python怎么打开文件