文档章节

Apache CXF之初探

yaokangjun
 yaokangjun
发布于 2014/08/20 16:10
字数 446
阅读 4071
收藏 4

一、到官网 http://cxf.apache.org/download.html 下载对应的 包。

二、新建Java 工程,把对应的jar包放入去。

三、创建 server 端的程序。

     共有3个Java文件:

     3.1 新建接口 HelloWorld,此接口只有一个方法,如下代码:


package com.yao.cxf.server;

public interface HelloWorld {
	String sayHi(String text);
}



      3.2 实现接口类 HelloWorldImpl:



package com.yao.cxf.server;

public class HelloWorldImpl implements HelloWorld {

	@Override
	public String sayHi(String text) {
		return "Hello,"+text;
	}

}



      3.3 服务器端类:



package com.yao.cxf.server;

import org.apache.cxf.frontend.ServerFactoryBean;

public class Server {

	public Server() throws Exception{
		HelloWorldImpl hw = new HelloWorldImpl();
		ServerFactoryBean sfb = new ServerFactoryBean();
		sfb.setServiceClass(HelloWorld.class);
		sfb.setServiceBean(hw);
		sfb.setAddress("http://localhost:9000/Hello");
		sfb.create();
	}
	
	public static void main(String[] args) throws Exception{
		new Server();
		System.out.println("server start ...");
		Thread.sleep(5*60*1000);
		System.out.println("server exit ...");
		System.exit(0);
	}

}




四、创建客户端:

客户端设置和服务器端一样的地址才可以访问:


package com.yao.cxf.client;

import org.apache.cxf.frontend.ClientProxyFactoryBean;

import com.yao.cxf.server.HelloWorld;

public class Client {

	public static void main(String[] args) {
		ClientProxyFactoryBean clientFactory = new ClientProxyFactoryBean();
		clientFactory.setAddress("http://localhost:9000/Hello");
		HelloWorld hw = clientFactory.create(HelloWorld.class);
		System.out.println(hw.sayHi("yaokj"));
	}

}



五、先启动运行Server类,再运行Client类,


     5.1 运行Server类打印如下的结果:

2014-8-20 15:28:15 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://server.cxf.yao.com/}HelloWorld from class com.yao.cxf.server.HelloWorld
2014-8-20 15:28:16 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http://localhost:9000/Hello
2014-8-20 15:28:16 org.eclipse.jetty.server.Server doStart
信息: jetty-8.1.15.v20140411
2014-8-20 15:28:16 org.eclipse.jetty.server.AbstractConnector doStart
信息: Started SelectChannelConnector@localhost:9000
2014-8-20 15:28:16 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}Discovery from WSDL: classpath:/org/apache/cxf/ws/discovery/wsdl/wsdd-discovery-1.1-wsdl-os.wsdl
2014-8-20 15:28:16 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be soap.udp://239.255.255.250:3702
2014-8-20 15:28:16 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01}DiscoveryProxy from class org.apache.cxf.jaxws.support.DummyImpl
server start ...
server exit ...



    5.1  运行Client类 打印如下的结果:

2014-8-20 15:28:38 org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://server.cxf.yao.com/}HelloWorld from class com.yao.cxf.server.HelloWorld
Hello,yaokj



© 著作权归作者所有

yaokangjun
粉丝 26
博文 62
码字总数 29408
作品 0
广州
程序员
私信 提问
加载中

评论(3)

Carvendy
Carvendy
<bean id="xmlOutputFactory" class="com.ctc.wstx.stax.WstxOutputFactory"/>
  
  <cxf:bus>
    <cxf:properties>
      <entry key="javax.xml.stream.XMLOutputFactory" value-ref="xmlOutputFactory" />
    </cxf:properties>
  </cxf:bus>

cxf过滤非法字符的你用过吗?
yaokangjun
yaokangjun

引用来自“shengye_102”的评论

为什么我也是按照上面的下来的,为什么总是不成功?
报什么错?
shengye_102
shengye_102
为什么我也是按照上面的下来的,为什么总是不成功?
Apache CXF 3.0.16 发布,开源的 Service 框架

Apache CXF 3.0.16 发布了。Apache CXF一个开源的Service框架,它实现了JCP与Web Service中一些重要标准。CXF简化了构造,集成,面 向服务架构(SOA)业务组件与技术的灵活复用。 主要更新内容...

达尔文
2017/11/30
803
0
Apache CXF 3.1.15 发布,开源的 Service 框架

Apache CXF 3.1.15 发布了。Apache CXF一个开源的Service框架,它实现了JCP与Web Service中一些重要标准。CXF简化了构造,集成,面向服务架构(SOA)业务组件与技术的灵活复用。 更新内容: Bu...

淡漠悠然
2018/03/14
705
1
Apache CXF 3.0.13 和 3.1.11 发布

Apache CXF 3.0.13 和 3.1.11 发布了,暂未发现具体更新内容。 点此查看 Apache CXF 3.0.13 和 3.1.11 的提交记录。 下载地址 和 发布主页 Apache CXF是一个开源的Service框架,它实现了JCP...

淡漠悠然
2017/04/06
851
3
apache CXF wsdl2java工具的使用

最近,由于要用到某公司提供的webservice实现的api接口,想到了用cxf的wsdl2java工具来生成客户端程序。(自己写是比较麻烦且费时,so偷懒一下、、) 使用步骤如下: 一、下载apache cxf的包...

Yao淡定
2014/02/21
0
0
根据wsdl 文件 用soapUi 快速创建webService 服务创建(图文并茂)

最近公司业务上使用webservice 频繁。由于之前都是自己搭建webservice 自己定义提供给别人服务,现在则相反需求都是根据人家提供的wsdl 文件来生成 我们平台需要提供的接口。刚开始不知道如何...

hlevel
2014/06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Feign输出Info级别日志

背景   spring cloud netfix组件中,feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对Debug基本的日志做出响应, 实际业务需要输出Info级别的日志,所以需要做自定...

xiaomin0322
30分钟前
3
0
面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

1、start一个spring boot项目 第一课我们也不能免俗,要从starter开始,spring boot的起始项目脚手架可以从spring boot官方starter生成地址开始:https://start.spring.io/ 这张图列出了一个...

wphmoon
30分钟前
1
0
Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作

Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作 0行云流水00人评论61017人阅读2018-04-11 19:57:20 KVM的安装配置与基本操作 目录 第一部分 实验环境 第二部分 安装图形界面 ...

linjin200
33分钟前
3
0
php获取网站favicon.ico图标 api源码

 通常情况下,做网站的都会给自己的网站添加一个Icon,浏览器上一长排的标签页,用Icon来区分就显得更加醒目。现在想找一个没有Icon的网站并不好找,可见没有Icon的网站是多么的业余啊。"什...

xiaogg
36分钟前
1
0
双亲委派的认识

首先JVM中有三种类加载器 Bootstrap启动类加载器 Extension扩展类加载器(ExtClassLoader) System系统类加载器(AppClassLoader) 某个特定的类接到加载类的请求时候,首先将加载任务委托给...

最胖的瘦子
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部