1、 WebService实现类:@WebService注解表示这个类发布为一个WebService服务。

package com.coshaho.learn.cxf;

import javax.jws.WebService;

/**
* WebService实现类不继承接口,则所有WebService相关注解需要写在实现类中
* @author coshaho
*
*/
@SuppressWarnings("restriction")
@WebService(name="HelloWoldService")
public class HelloWorldServiceImpl
{
public String sayHello(String username)
{
return "Hello " + username + "!";
}
}

2、发布服务。

package com.coshaho.learn.cxf;

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean; public class CXFServer
{
public static void main(String[] args)
{
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean(); // Web服务的地址
factoryBean.setAddress("http://localhost:8081/hello"); // Web服务对象调用接口
factoryBean.setServiceClass(HelloWorldServiceImpl.class);
Server server = factoryBean.create();
server.start();
}
}

3、WebService客户端模拟接口:CXF客户端接口参数名称(@WebParam),方法名称(@WebMethod),返回值名称(@WebResult)需要与WebService服务端实现类或接口保持一致。

package com.coshaho.learn.cxf;

import javax.jws.WebService;

/**
* CXF客户端接口参数名称(@WebParam),方法名称(@WebMethod),返回值名称(@WebResult)需要与WebService服务端实现类或接口保持一致
* @author coshaho
*
*/
@SuppressWarnings("restriction")
@WebService
public interface HelloWoldClientServiceI
{
public String sayHello(String userName);
}

4、客户端调用WebService服务。

package com.coshaho.learn.cxf;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class CXFClient
{
public static void main(String[] args)
{
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean(); //获取服务器端
factoryBean.setAddress("http://localhost:8081/hello"); //通过客户端的接口获取服务器端的接口
factoryBean.setServiceClass(HelloWoldClientServiceI.class);
HelloWoldClientServiceI hello =(HelloWoldClientServiceI) factoryBean.create();
System.out.println(hello.sayHello("CXF"));
}
}

5、如果服务端实现类继承于一个接口,则可以在接口中写明WebService相关注解,实现类省略注解。

package com.coshaho.learn.cxf;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult; /**
* WebService实现类可以继承WebService接口,所有WebService相关注解写在接口中
* @author coshaho
*
*/
@SuppressWarnings("restriction")
@WebService(name="HelloWoldService")
public interface HelloWoldServiceI
{
@WebMethod(operationName="sayHelloWorld")
@WebResult(name="result")
public String sayHello(@WebParam(name="userName") String username);
}

CXF入门例子的更多相关文章

  1. 【Bootstrap Demo】入门例子创建

    本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...

  2. 【Bootstrap】入门例子创建

    本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...

  3. spring boot入门例子

    最近学习spring boot,总结一下入门的的基础知识 1新建maven项目,修改pom.xml <project xmlns="http://maven.apache.org/PO ...

  4. CXF 入门:创建一个基于WS-Security标准的安全验证(CXF回调函数使用,)

    http://jyao.iteye.com/blog/1346547 注意:以下客户端调用代码中获取服务端ws实例,都是通过CXF 入门: 远程接口调用方式实现 直入正题! 以下是服务端配置 ==== ...

  5. MINA经典入门例子----Time Server

    原文地址 http://blog.sina.com.cn/s/blog_720bdf0501010b8r.html 貌似java的IO.NIO的入门例子都有相关的Time Server Demo.本例 ...

  6. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import ...

  7. JPA入门例子(采用JPA的hibernate实现版本) 转

    JPA入门例子(采用JPA的hibernate实现版本) jpahibernate数据库jdbcjava框架(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化 ...

  8. Cassandra 单机入门例子——有索引

    入门例子: http://wiki.apache.org/cassandra/GettingStarted 添加环境变量并source生效,使得可以在任意位置执行cassandra/bin安装目录下的 ...

  9. Apache CXF入门

    CXF简介 Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了.CXF 继承了 Celtix 和 XFire 两大 ...

随机推荐

  1. 蒟蒻修养之tc蓝名计划

    开一个新坑......(听说tc是智商高的人才能玩的QAQ显然我是被屠的... 1 [645DIV2]这个能说是裸模拟吗... 弃坑= =做了一些题感觉没必要放上来了= =等div1先吧....... ...

  2. 【转】SQLServer内部原理

    原文地址:http://twb.iteye.com/blog/182083 在讲SQLSERVER内部原理的之前,我觉得非常有必要向大家介绍一下SQLSERVER的历史. 让我们站在1999年,看看计 ...

  3. Klayge 引擎的安装

    http://www.klayge.org/wiki/index.php?title=%E4%BE%8B%E5%AD%90%E7%A8%8B%E5%BA%8F&redirect=no& ...

  4. Javascript 笔记与总结(2-5)window 对象

    浏览器 window 对象(BOM)是浏览器宿主对象,和 js 语言无关. [window 对象的方法] window.alert(message); window.confirm(message); ...

  5. [ PHP+jQuery ] ajax 多级联动菜单的应用:电商网站的用户地址选择功能 ( 二 ) - 仿亚马逊下拉面板

    /** jQuery version: 1.8.3 Author: 小dee Date: 2014.11.8 */ 接上一篇博客. 实现带缓存的仿亚马逊下拉面板 效果图: 图1 初始 图2 点击省份 ...

  6. 提高Vector容器的删除效率

    vector容器是类似与一个线性数组,索引效率高,插入,删除的效率很低,需要遍历数据列表,一般情况下vector的删除操作由一下函数完成: iterator erase(iterator positi ...

  7. HTML: xhtml和html的區別

    XHTML 与 HTML 4.01 标准没有太多的不同. 另外,你应该马上使用小写字母编写HTML代码,同时绝不要养成忽略类似 </p> 标签的坏习惯. 最主要的不同: XHTML 元素必 ...

  8. LoadRunner系统架构简介

    1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...

  9. love yy-kiss 医生出差二期

    医生出差二期,做了一半撤出去做互联网医院了 http://confluence.haodf.net/pages/viewpage.action?pageId=15801359  医生出差二期 没设置数 ...

  10. Aliasing 走样

    Computer Science An Overview _J. Glenn Brookshear _11th Edition Have you ever noticed the weird &quo ...