1. 环境说明

jdk 1.6.0_29

apache cxf  2.7.7

2. 新建JavaProject

3. 添加jar包,将apache cxf下面lib里面的jar包都添加到项目中(可能有些是不需要的,为了简单没进行筛选)。

4. 项目目录结构:

5. 代码如下

Book.Java

  1. package com.unei.bean;
  2. import javax.xml.bind.annotation.XmlRootElement;
  3. @XmlRootElement(name = "Book")
  4. public class Book {
  5. private int bookId;
  6. private String bookISBNnumber;
  7. private String bookName;
  8. private double price;
  9. private String author;
  10. public double getPrice() {
  11. return price;
  12. }
  13. public void setPrice(double price) {
  14. this.price = price;
  15. }
  16. public int getBookId() {
  17. return bookId;
  18. }
  19. public void setBookId(int bookId) {
  20. this.bookId = bookId;
  21. }
  22. public String getBookISBNnumber() {
  23. return bookISBNnumber;
  24. }
  25. public void setBookISBNnumber(String bookISBNnumber) {
  26. this.bookISBNnumber = bookISBNnumber;
  27. }
  28. public String getBookName() {
  29. return bookName;
  30. }
  31. public void setBookName(String bookName) {
  32. this.bookName = bookName;
  33. }
  34. public String getAuthor() {
  35. return author;
  36. }
  37. public void setAuthor(String author) {
  38. this.author = author;
  39. }
  40. }

IBookService.java

  1. package com.unei.service;
  2. import javax.jws.WebMethod;
  3. import javax.jws.WebService;
  4. import com.unei.bean.Book;
  5. @WebService
  6. public interface IBookService {
  7. @WebMethod
  8. public void addBook(Book book);
  9. @WebMethod
  10. public void deleteBook(int bookId);
  11. @WebMethod
  12. public void updateBook(Book book);
  13. @WebMethod
  14. public Book getBook(int bookId);
  15. }

BookService.java

  1. package com.unei.service.impl;
  2. import com.unei.bean.Book;
  3. import com.unei.service.IBookService;
  4. public class BookService implements IBookService{
  5. @Override
  6. public void addBook(Book book) {
  7. System.out.println("addBook:"+book.getBookName());
  8. }
  9. @Override
  10. public void deleteBook(int bookId) {
  11. System.out.println("deleteBook:"+bookId);
  12. }
  13. @Override
  14. public void updateBook(Book book) {
  15. System.out.println("updateBook:"+book.getBookName());
  16. }
  17. @Override
  18. public Book getBook(int bookId) {
  19. Book book=new Book();
  20. book.setBookId(4);
  21. book.setBookName("getBook");
  22. book.setBookISBNnumber("ABCDEFG");
  23. book.setPrice(20.00);
  24. return book;
  25. }
  26. }

Server.java

  1. package com.unei.service.test;
  2. import org.apache.cxf.interceptor.LoggingInInterceptor;
  3. import org.apache.cxf.interceptor.LoggingOutInterceptor;
  4. import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
  5. import com.unei.service.IBookService;
  6. import com.unei.service.impl.BookService;
  7. public class Server {
  8. protected Server() throws Exception {
  9. <span style="white-space:pre">    </span>System.out.println("Starting server...");
  10. <span style="white-space:pre">    </span>BookService bs=new BookService();
  11. <span style="white-space:pre">    </span>JaxWsServerFactoryBean svrFactory=new JaxWsServerFactoryBean();
  12. <span style="white-space:pre">    </span>svrFactory.setServiceClass(IBookService.class);
  13. <span style="white-space:pre">    </span>svrFactory.setAddress("http://localhost:9000/bs");
  14. <span style="white-space:pre">    </span>svrFactory.setServiceBean(bs);
  15. <span style="white-space:pre">    </span>svrFactory.getInInterceptors().add(new LoggingInInterceptor());
  16. <span style="white-space:pre">    </span>svrFactory.getOutInterceptors().add(new LoggingOutInterceptor());
  17. <span style="white-space:pre">    </span>svrFactory.create();
  18. }
  19. public static void main(String args[]) throws Exception {
  20. new Server();
  21. System.out.println("Server ready...");
  22. Thread.sleep(5 * 6000 * 1000);
  23. System.out.println("Server exiting");
  24. System.exit(0);
  25. }
  26. }

6. 测试程序

浏览器输入:http://localhost:9000/bs?wsdl

浏览器输出wsdl文档

7. 通过apache cxf生成客户端代码

在命令提示符中运行:

wsdl2java -frontend jaxws21 -p com.unei.soap.client -d F:\ws http://localhost:9000/bs?wsdl

将wsdl装换为java代码

8. 新建Java Project,添加jar包,将cxf生成的客户端代码添加到项目中,项目如下:

9. 客户端代码

Client.java

    1. package com.unei.app;
    2. import org.apache.cxf.interceptor.LoggingInInterceptor;
    3. import org.apache.cxf.interceptor.LoggingOutInterceptor;
    4. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    5. import com.unei.soap.client.Book;
    6. import com.unei.soap.client.IBookService;
    7. public class Client {
    8. public static void main(String[] args) {
    9. JaxWsProxyFactoryBean factory=new JaxWsProxyFactoryBean();
    10. factory.getInInterceptors().add(new LoggingInInterceptor());
    11. factory.getOutInterceptors().add(new LoggingOutInterceptor());
    12. factory.setAddress("http://localhost:9000/bs");
    13. factory.setServiceClass(IBookService.class);
    14. Object o=factory.create();
    15. IBookService bs=(IBookService)o;
    16. Book b=new Book();
    17. b.setBookName("new book");
    18. b.setBookId(1);
    19. bs.addBook(b);
    20. }
    21. }

Apache CXF JAX-WS example的更多相关文章

  1. Spring 4 集成Apache CXF开发JAX-RS Web Service

    什么是JAX-RS 在JSR-311规范中定义,即Java API for RESTful Web Services,一套Java API,用于开发 RESTful风格的Webservice. 工程概 ...

  2. Apache CXF实现WebService发布和调用

    第一种方法:不用导入cxf jars 服务端: 1. 新建Web工程 2.新建接口和实现类.测试类 目录结构图如下: 接口代码: package com.cxf.spring.service; imp ...

  3. Apache CXF实现WebService入门教程(附完整源码)

    Apache CXF实现WebService非常简单实用,只需要几步就可以实现一个简单的web service. 首先我们需要新建一个maven项目,在pom中添加依赖和jetty作为测试的web s ...

  4. Apache CXF自定义拦截器

    为什么设计拦截器?1.为了在webservice请求过程中,能动态操作请求和响应数据,CXF设计了拦截器 拦截器分类: 1.按所处的位置分:服务器端拦截器,客户端拦截器. 2.按消息的方向分:入拦截器 ...

  5. So easy Webservice 8.spring整合CXF 发布WS

    1.添加jar包(cxf的jar包中包含了spring的jar包),添加spring配置文件 2.web.xml中配置CXFServlet,过滤WS服务的地址 <!-- 配置CXFServlet ...

  6. Apache CXF 103 CXF Basics - partial

    本Spike记录中内容,如无特别指出,均引用[1]. 0 引言 0.1 基本的Web服务术语 XML 业界的结构化交换信息表示的事实上的标准. XML namespace是在XML文档中提供唯一的命名 ...

  7. Apache CXF 102 CXF with REST

    前言 续上篇Apache CXF 101,摘抄部分REST概念性知识,以运行实例考察CXF对REST的支持. 目录 1 REST简介 2 工具 3 运行实例 内容 本Spike记录中内容,如无特别指出 ...

  8. Apache CXF 101 Win Eclipse开发环境搭建

    前言 博客草稿中“SOA生态系统初探”一文一直没有进展,感觉要将SOA.Web Service(WS).REST等概念阐述清楚还需要一些酝酿. 顶天须得立地,这里记录一些“下里巴人”的实践,主要考察A ...

  9. Apache CXF实现Web Service(5)—— GZIP使用

    Apache CXF实现Web Service(5)-- GZIP使用 参考来源: CXF WebService整合Spring Apache CXF实现Web Service(1)--不借助重量级W ...

  10. Apache CXF实现Web Service(4)——Tomcat容器和Spring实现JAX-RS(RESTful) web service

    准备 我们仍然使用 Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 中的代码作为基础,并 ...

随机推荐

  1. 性能测试四:jmeter进阶之逻辑控制器

    常用的逻辑控制器 1,循环控制器:可以设置该控制器内的sampler执行的次数,循环次数与线程的循环次数各自独立 2,if控制器:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和 ...

  2. git push origin master出错:error: failed to push some refs to

    1.输入git push origin master 出错:error: failed to push some refs to 那是因为本地没有update到最新版本的项目(git上有README. ...

  3. HttpClient + Testng实现接口测试

    HttpClient教程 : https://www.yeetrack.com/?p=779 一,所需要的环境: 1,testng .httpclient和相关的依赖包 二.使用HttpClient登 ...

  4. 【转】角落的开发工具集之Vs(Visual Studio)2017插件推荐

    因为最近录制视频的缘故,很多朋友都在QQ群留言,或者微信公众号私信我,问我一些工具和一些插件啊,怎么使用的啊?那么今天我忙里偷闲整理一下清单,然后在这里面公布出来. Visual Studio 201 ...

  5. HDU 1517 (累乘 找规律)

    题意:2 个人玩游戏,从 1 开始,轮流对数进行累乘,直到超过一个指定的值. 解题思路:如果输入是 2 ~ 9 ,因为Stan 是先手,所以Stan 必胜如果输入是 10~18 ,因为Ollie 是后 ...

  6. ERROR 2003:Can't connect to MySQL server on 'localhost'

    mysql出现10061错误解决办法 如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)", ...

  7. Python字符串capitalize center 方法

    一.capitalize 首字母大写 name = "wohaoshuai" print(name.capitalize()) #首字母大写 Wohaoshuai 二.center ...

  8. python的random模块(生成验证码)

    python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...

  9. Linux学习之常用网络通信命令与shell简单应用技巧(四)

    (一)常用网络通信命令 (1)ping命令 (2)write命令 (3)wall命令 (4)ifconfig命令 (5)shutdown命令 (6)reboot命令 (二)shell简单应用技巧 (1 ...

  10. java反射修改final变量

    private void updateFinalModifiers(Field field) throws NoSuchFieldException, IllegalAccessException { ...