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. Leetcode 笔记 116 - Populating Next Right Pointers in Each Node

    题目链接:Populating Next Right Pointers in Each Node | LeetCode OJ Given a binary tree struct TreeLinkNo ...

  2. 小丁带你走进git的世界四-重写历史记录

    一.git对象文件创建 开篇先补充一个知识点,就是比如我建立一个文件之后,使用git add就会生成一个git对象,但是git对象生成后可以在.git/objects里面对应,首先我们来初始化一个仓库 ...

  3. ABP源码分析三十六:ABP.Web.Api

    这里的内容和ABP 动态webapi没有关系.除了动态webapi,ABP必然是支持使用传统的webApi.ABP.Web.Api模块中实现了一些同意的基础功能,以方便我们创建和使用asp.net w ...

  4. [翻译]AKKA笔记 - DEATHWATCH -7

    当我们说Actor生命周期的时候,我们能看到Actor能被很多种方式停掉(用ActorSystem.stop或ActorContext.stop或发送一个PoisonPill - 也有一个kill和g ...

  5. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...

  6. SQL Server 复制系列(文章索引)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 复制逻辑结构图(Construction) 系列文章索引(Catalog) 总结&am ...

  7. VS2010编写WebService与在IIS的发布<之简单讲解>

    工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1.新建空web应用程序项目 2.新建web服务 3.自动生成 4.直接跑起来,可以看到有2个方法 5.点击H ...

  8. 搞定.NET MVC IOC控制反转,依赖注入

    一直听说IOC,但是一直没接触过,只看例子好像很高达上的样子,今天抽了点时间实现了下,当然也是借助博客园里面很多前辈的文章来搞的!现在做个笔记,防止自己以后忘记! 1.首先创建MVC项目 2.然后新建 ...

  9. linux su和sudo命令的区别

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  10. 用Middleware给ASP.NET Core Web API添加自己的授权验证

    Web API,是一个能让前后端分离.解放前后端生产力的好东西.不过大部分公司应该都没能做到完全的前后端分离.API的实现方式有很 多,可以用ASP.NET Core.也可以用ASP.NET Web ...