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. ucos实时操作系统学习笔记——任务间通信(队列)

    ucos操作系统中的queue机制同样使用了event机制来实现,其实和前面的sem,mutex实现类似,所不同的是对sem而言,任务想获得信号量,对mutex而言,任务想获得的是互斥锁.任务间通信的 ...

  2. Linux环境下shell和vim中乱码原因及消除办法

    shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

  3. HackerNews——《Pokemon Go玩家存在巨大的安全风险》

    译者注:原文来自HackerNews,首发tumblr,标题为Pokemon Go is a huge security risk.作者Adam Reeve,附一张这个胖子的帅照   (正文)之所以会 ...

  4. EMC与电容(二)-电容参数意义、各电容的特点及应用

    上次的问题,看到很多回答里都有关于X电容,Y电容,NPO之类,这些很奇怪的参数到底代表什么意义呢?以前很多次都在BOM表里看到这些参数,一直都无视过去,正好这次的EMC课程里也提到这方面的知识,正好跟 ...

  5. 总结一下CSS中的定位 Position 属性

    在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...

  6. Ninesky源代码从Codeplex迁移到开源中国

    原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...

  7. webpack+react+es6开发模式

    一.前言 实习了两个月,把在公司用到的前端开发模式做个简单的整理.公司里前端开发模式webpack+react+redux+es6,这里去掉了redux. webpack, react, redux等 ...

  8. Maven在Eclipse中的实用小技巧

    前言     我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天 ...

  9. 排版紧凑情况下IOS 浏览器的文字部分选中问题

    一.需求 一个每一项都是图文混排的列表页,在需要对其中的某一部分文字进行选中copy的时候,IOS个二货每次都是直接选中了整个列表项,无论怎么操作它的选框都没有办法做到部分选中. 这是我本周遇到遇到的 ...

  10. grunt自定义任务——合并压缩css和js

    npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...