Web Service技术应用广泛,可实现不同平台的数据交换,现做了一个CXF webservice小例子,供webservice初学者参考.

1.环境搭建

1.1  下载 Apache CXF  可以去官方下载 http://cxf.apache.org/ 。也可点击http://pan.baidu.com/s/1jIPyOYU 我分享的云盘下载(apache-cxf-2.4.2).  解压文件

1.2  配置Apache CXF环境变量: 创建一个CXF_HOEM变量,值为CXF框架所在根目录

  

在path中添加CXF_HOEM变量

  

1.3  创建java项目   引入 D:\work\apache-cxf-2.4.2\lib 目录下的jar包

2.代码编写

2.1  创建IHelloService.java 接口

package com.service;import javax.jws.WebParam;
import javax.jws.WebService;@WebService
public interface IHelloService {public String sayHello(@WebParam(name = "text") String text);public User getUser(String id);
}

View Code

2.2  创建HelloServiceImpl.java实现 IHelloService 接口

package com.service;import java.util.Date;import javax.jws.WebService;@WebService(endpointInterface = "com.service.IHelloService", serviceName = "HelloWorld")
public class HelloServiceImpl implements IHelloService {@Overridepublic String sayHello(String text) {return "Hello x " + text;}@Overridepublic User getUser(String id) {User u = new User();u.setId(id);u.setAge(10);u.setName("小明");u.setBirthday(new Date(new Date().getTime() - 10 * 12 * 30 * 24 * 3600));return u;}}

View Code

2.3  编写 webServiceApp.java类来暴露 web服务

package com.service;import javax.xml.ws.Endpoint;public class WebServiceApp {public static void main(String[] args) {System.out.println("web service start");HelloServiceImpl implementor = new HelloServiceImpl();String address = "http://localhost:8080/HelloService";Endpoint.publish(address, implementor);System.out.println("web service started");}
}

View Code

2.4  run webServiceApp.java 类来启动服务。 访问 http://localhost:8080/HelloService?wsdl 查看是否成功

   

2.5 编写客户端访问服务
======== 方法1:

创建客户端的代理,生成factory对象,用于调用服务端的方法

package com.service;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;public class HelloServiceClient {public static void main(String[] args) {JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();svr.setServiceClass(IHelloService.class);svr.setAddress("http://localhost:8080/HelloService");IHelloService hw = (IHelloService) svr.create();System.out.println(hw.sayHello("你好"));User u = hw.getUser("1");System.out.println(u.getName());}
}

======== 方法2:
通过命令自动生成客户端文件

法一.   1.cmd 进入doc窗口,

2.用  wsimport -s D:\ -p com.client http://localhost:8080/HelloWorld?wsdl (不用安装apache-cxf客户端)命令生成

法二.
 1.   cmd 进入doc窗口, 进入apache-cxf-2.4.2\bin路径
 2.   运行 wsdl2java -frontend jaxws21 -p com.client -d D:\ -client -autoNameResolution http://localhost:8080/HelloWorld?wsdl    会在D盘生成 com\client文件夹,里面有生成号的客户端文件。将文件拷贝到项目中

  

3.  调用接口

package com.main;import com.client.HelloWorld;
import com.client.IHelloService;public class ClientMain {public static void main(String[] args) {HelloWorld factory = new HelloWorld();IHelloService hw = factory.getHelloServiceImplPort();System.out.println(hw.sayHello("sss"));System.out.println(hw.getUser("11").getName());}
}

下面链接可下载上述源码

http://pan.baidu.com/s/1kUZVZHt  希望能帮到你

转载于:https://www.cnblogs.com/lovedaodao/p/6946374.html

CXF webservice完整例子相关推荐

  1. CXF WebService整合SpringMVC的maven项目

    首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html   http://blog.csdn.net/hu_shengyang/article/de ...

  2. CXF WebService整合Spring

    CXF WebService整合Spring 首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spring的jar包是Spring官方提供的,并没有使用CXF中的Spring的ja ...

  3. 《转》CXF WebService 开发文档-目录索引

    CXF WebService 开发文档-目录索引 上次介绍了Axis的WebService,现在我们来看看CXF是怎么完成WebService的. Axis1 WebService 在线博文: htt ...

  4. jquery中ajax完整例子get,jq的ajax方法,jquery中ajax完整例子

    jq的ajax方法,jquery中ajax完整例子 相较与js异步对象的繁琐,jq的ajax对象结构更加清晰 一:ajax对象简述 ajax(Asynchronous JavaScript and X ...

  5. CXF WebService 开发文档-目录索引

    上次介绍了Axis的WebService,现在我们来看看CXF是怎么完成WebService的. Axis1 WebService 在线博文: http://www.cnblogs.com/hoojo ...

  6. cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例

    1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出 ...

  7. cxf webservice:异常SOAPFaultException: Unexpected wrapper element found解决

    cxf webservice:异常SOAPFaultException: Unexpected wrapper element found解决 参考文章: (1)cxf webservice:异常SO ...

  8. cxf webservice接收date类型字段值为空导致异常问题解决方案

    cxf webservice接收date类型字段值为空时,后台会报错.原因是cxf没有很好处理空值的情况. 解决方案 自定义date字段的转换方式.以springboot cxf 为例.涉及以下三点改 ...

  9. SOAP方式的CXF WebService实现

    1. WebService概述 1.1 WebService定义    W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组 ...

  10. Spring整合CXF webservice restful 实例

    webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java [源码 ...

最新文章

  1. 管理大师基本功:目标拆解能力
  2. mysql栈空间大小_jvm 堆内存 栈内存 大小设置
  3. 搭建discuz论坛
  4. DSP关于存储器读写、IO读写时序图的注意点
  5. .NET 面向对象基础
  6. python基础字典(七)
  7. linux-网络数据包抓取-tcpdump
  8. Asp.net上传文件至目录
  9. 减少.NET应用程序内存占用的一则实践
  10. 计算机简单进制转换题目,计算机数制转换题!(1011011)2 =( )10=( )16 =( )8(110111101)2 =( )10=(...
  11. HTML与css语法笔记
  12. 等级保护三级信息系统安全设计
  13. wxpy 扫码登录微信报错 KeyError: pass_ticket(网页版微信登录失败)
  14. 网件r7000梅林系统虚拟内存创建失败,提示USB磁盘读写速度不满足要求解决办法,有需要创建虚拟内存吗??
  15. Django Q查询
  16. vue移动端上传文件插件_轻量级Vue图片上传插件——Vue-core-image-Upload
  17. JAVA生成纯色背景图-自定义大小-自定义颜色
  18. 批量下载文件,打包成zip压缩包
  19. http状态码有哪些 ,表示了什么
  20. 昆仑通态直接用485Modbus通讯控制国产380系统变频器

热门文章

  1. Uva 1471 Defense Lines(LIS变形)
  2. debian 修改apache2 https 端口为11443
  3. 4.9、Bootstrap V4自学之路------组件---提示
  4. poj 3422 (费用流)
  5. UBUNTU 图两个
  6. 配置rc.local开机自启动文件的疑问?
  7. 你要“老婆”不?谷歌程序员20行代码送你一个!
  8. 今日头条首次公开算法原理(附全文详解)
  9. 从 0 开始学习 GitHub 电子书免费送
  10. 线下见面会,下一站定啦!