1.下载CXF,及先关jar包。
CXF 下载地址:http://cxf.apache.org/download.html,选择“File”列中的zip格式下载。解压后可以看到一些文件夹:
└─apache-cxf-2.5.0
    ├─bin           各种工具
    ├─docs        API文档
    ├─etc          各种配置文件
    ├─lib           开发所需jar包
    ├─licenses  说明
    ├─modules  jar包
    └─samples  使用例子
samples文件夹中给提供了在各种环境下使用的例子,个人感觉只需参照样例即可。
本例中所需jar截图如下:
 
2.以天气预报webservice接口为例:
打开浏览器,输入
3.打开cmd进入CXF下的bin目录,执行
wsdl2java -d D:\\src -client http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
4.命令行会出现报错,如下:
WSDLToJava Error: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl [44,19]: undefined element declaration 's:schema'
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl [85,13]: undefined element declaration 's:schema'
5.若出现4中的错误,则将第2个步骤中已打开的网页,CTRL+S,另存为weather.wsdl文件。
6.第六步生成代码,执行以下命令:
wsdl2java -d D:\\src -client f:/weather.wsdl
-d后面的路径是生成代码的本地路径,
-client后面是本地的wdsl文件。
执行成功后,在D盘SRC下一些java类。
7.把SRC下的java累拷贝到已有的项目或者新建的项目中,调试保证不报错。
8.建测试类,测试接口是否正确。
8.1测试远程地址代码如下:
/**
* JAVA 用 Apache CXF 调用 .NET 服务端 WebService 测试类
*
* @author wqmain
*/
public class WeatherTest {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
WeatherWebService w= new WeatherWebService(url);
WeatherWebServiceSoap ws = w.getWeatherWebServiceSoap();
ArrayOfString a = ws.getSupportProvince();
System.out.println(a.getString());
}
}
8.2测试本地WSDL代码如下:
/**
* JAVA 用 Apache CXF 调用 .NET 服务端 WebService 测试类
*
* @author wqmain
*/
public class WeatherTest {
 
public static void main(String[] args) throws Exception {
 
java.net.URL wsdlLocation = ClassLoader.getSystemResource("weather.wsdl");
 
JaxWsDynamicClientFactory dcf =JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient(wsdlLocation);//指定classpath下的WSDL文件
// dcf.createClient("D:/apache-cxf-2.7.0/bin/weather.wsdl");//指定WSDL文件的绝对路径
Object[] provinces = client.invoke("getSupportProvince");
if(provinces != null && provinces.length > 0) {
for(Object province : provinces) {
System.out.println(((ArrayOfString)province).getString());
}
}
Object[] citys = client.invoke("getSupportCity","浙江");
if(citys != null && citys.length > 0) {
for(Object city : citys) {
System.out.println(((ArrayOfString)city).getString());
}
}
Object[] weathers = client.invoke("getWeatherbyCityName", "杭州");
if(weathers != null && weathers.length > 0) {
for(Object weather : weathers) {
System.out.println(((ArrayOfString)weather).getString());
}
}
}
 
}
 

webservice入门实例,CXF方式的更多相关文章

  1. WebService入门实例教程

    什么是WebService 通过使用WebService,您的应用程序可以向全世界发布信息,或提供某项功能,它是基于Web的服务,通过Web进行发布.查找和使用. WebService脚本平台需支持X ...

  2. Java WebService入门实例

    Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务. Web Service的关键技术和规则: 1.XML:描述 ...

  3. RESTful WebService 入门实例

      /* 新建MavenProject,使用以下代码,创建类和POM文件.使用命令行切换到Project根目录,运行mvn package(或者,选中pom.xml 文件右键单击 > run a ...

  4. JAVAEE——BOS物流项目07:WebService入门、apache CXF入门、基于CXF发布CRM服务

    1 学习计划 1.WebService入门 n 什么是WebService n 调用网络上的WebService服务 n SOAP和WSDL概念 n 基于JDK1.7发布一个简单的WebService ...

  5. React创建组件的三种方式比较和入门实例

    推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...

  6. java开发webservice的几种方式(转载)

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...

  7. webservice入门简介

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...

  8. Atitit 动态调用webservice与客户端代理方式调用

    Atitit 动态调用webservice与客户端代理方式调用 方式1: 使用call.invoke  直接调用WSDL,缺点:麻烦,不推荐--特别是JAVA调用.NET的WS时,会有不少的问题需要解 ...

  9. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

随机推荐

  1. Angular2学习笔记——Observable

    Reactive Extensions for Javascript 诞生于几年前,随着angular2正式版的发布,它将会被更多开发者所认知.RxJs提供的核心是Observable对象,它是一个使 ...

  2. AngularJs2与AMD加载器(dojo requirejs)集成

    现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行. 核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运 ...

  3. 安装keil MDK5

    昨天买的stm32板子今天就到了,顺丰速度确实很快. 我这是刚开始整STM32,首先需要下载keil MDK,直接杀去keil官网下载,其实对于学习者,我建议大家下载软件能去官网就去官网,尽量少用二道 ...

  4. json数据格式及json校验格式化工具简单实现

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, ...

  5. Lisp和SICP

         大概不少programmer都看过<黑客与画家>,作者用了整整一章的篇幅讨论Lisp的强大.我自然就会手痒痒.      几个月前,几天内攻城略地搞定了Python,用的方法便是 ...

  6. WebGIS中快速整合管理多源矢量服务以及服务权限控制的一种设计思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在真实项目中,往往GIS服务数据源被其他多个信息中心或者第三方 ...

  7. Linux零起点之进程管理----c语言编程

    进程 (Process)是指操作系统中被加载到内存中的.正在运行的应用程序实例.进程是系统资源分配的基本单元,在其生命周期内会使用系统中的各种资源.进程主要由程序.数据以及进程控制快(PCB)3个部分 ...

  8. asp.net core 依赖注入问题

    最近.net core可以跨平台了,这是一个伟大的事情,为了可以赶上两年以后的跨平台部署大潮,我也加入到了学习之列.今天研究的是依赖注入,但是我发现一个问题,困扰我很久,现在我贴出来,希望可以有人帮忙 ...

  9. C# 文件下载 : WinINet

    在 C# 中,除了 WebClient 我们还可以使用一组 WindowsAPI 来完成下载任务.这就是 Windows Internet,简称 WinINet.本文通过一个 demo 来介绍 Win ...

  10. struts2工作流程

    struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...