文档章节

简单的Spring+CXF例子

Chenaiwei
 Chenaiwei
发布于 2016/12/07 15:08
字数 603
阅读 240
收藏 1
点赞 0
评论 0

服务端:

步骤

  1. 新建web工程
  2. 在此测试导入所有的cxf 的jar包
  3. 新建接口
  4. 新建实现
  5. 在实现类里暴露(声- 明)对应的业务接口
  6. 配置spring-cxf文件
  7. 配置web.xml文件
  8. 发布查看wsdl文档是否成功

 服务端的项目结构

//User类是一个bean对象

public class User {
    
    private String name;
    
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public User(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public User() {
        super();
    }
    
    
}

//HelloWorldI是一个接口

@WebService
public interface HelloWorldI {

    User getUserInfo(int id);
}

//注意需要加上@WebService注解

 

//HelloWorldImpl是一个实现类,实现类里对应的方法里有处理业务的逻辑

@WebService(endpointInterface = "com.sp.cxf.HelloWorldI")
public class HelloWorldImpl implements HelloWorldI {

    public User getUserInfo(int id) {
        System.out.println("service is start");
        if (id == 1) {
            return new User("aiwei",1);
        }
        return null;
    }

}

 

spring-cxf.xml是一个spring 的bean配置文件

<!-- cxf对外接口 -->
    <jaxws:endpoint id="hello" implementor="com.sp.cxf.HelloWorldImpl" address="/helloService" />

 

web.xml是整个web工程的配置文件

<!-- 配置spring-cxf.xml -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-cxf.xml</param-value>
    </context-param>

    <!-- 应用启动的监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- cxf WebService服务 -->
    <servlet>
        <servlet-name>cxfService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxfService</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

 

把程序发布到浏览器上,结果

http://localhost:8080/spring-cxf/helloService?wsdl 

测试:用Eclipse的内置浏览器来测试

输入参数  1  ,结果是有的 。。 输入参数2 ,结果是无的,但都请求到了服务器

请求的xml源文件格式

响应的源文件格式

 

 

新建客户端:客户端采用java原生的的打包和请求方式来测试

步骤:

  1. cmd窗口进入到client端项目的src文件路径下
  2. 通过命令生成wsdl对应的文件
  3. 新建测试类,请求webservice,查看返回结果

进入到src 目录后:wsimport - p com.ws.client  -keep http://localhost:8080/spring-cxf/helloService?wsdl

-p表示包名,可有可无。

刷新项目:

 

新建main方法测试请求服务器

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        HelloWorldImplService hw = new HelloWorldImplService();
        HelloWorldI hi = hw.getHelloWorldImplPort();
        User user = hi.getUserInfo(1);
        if(user!=null){
            System.out.println(user.getAge()+"  "+user.getName());
        }else{
            System.out.println("无返回结果");
        }
        
    }
}

控制台:

更改请求参数为  2

 

至此,一个简单的webservice的服务器和客户端就是这样,后面再来实现下cxf自带的拦截器和我们自定义的拦截器功能。

最后附上一个关于WebService各个节点详解的文章:

http://blog.csdn.net/sd0902/article/details/8606046

© 著作权归作者所有

共有 人打赏支持
Chenaiwei
粉丝 0
博文 24
码字总数 13621
作品 0
广州
cxf JaxWsProxyFactoryBean的问题

项目使用的是spring+cxf 之前 服务器上 发布了一个 webservice http://localhost:8080/service/IUserService?wsdl 访问都正常 客户端使用java测试: 也正常...

xuzhou2013 ⋅ 2014/05/28 ⋅ 3

【Apache CXF】CXF对JAX-RS的支持

用CXF构建RESTful services有两种方式: ·CXF对JAX-RS的实现。 ·使用JAX-WS Provider/Dispatch API。 官网上还有Http Bindings方式,他需要做一些繁琐的工作去创建资源再映射到服务上,这种...

runtimeErr ⋅ 2014/05/15 ⋅ 0

Web Services(2)-Spring+CXF 发布WS

1.在tomcat容器中使用Spring+CXF 发布WS CXF 是Apache旗下一款非常优秀的Web Services 开源框架,具备轻量级的特性, 而且能无缝的整合到spring中 CXF是Celtix与XFire的整合, 前者是一款ESB框...

陈小扁 ⋅ 2016/03/28 ⋅ 0

spring+cxf开发Restful接口关于Json数据的传输

最开始我用springMvc做接口,前端可以通过post一个json格式的字符串,到后端就自动拼装成我想要的java对象了,需要设置一个转换器: 这样就可以通过js来传json数据: function addUser(){var...

MKZ1991 ⋅ 2014/10/22 ⋅ 3

Web Services(3)-使用CXF开发REST 服务

REST服务介绍 REST 全称是 Representational State Transfer (表述性状态转移), 它是Roy Fielding 博士在2000年写的一篇关于软件架构风格的论文, 简称REST 服务 REST 本质上是使用URL来访问资...

陈小扁 ⋅ 2016/03/28 ⋅ 0

基于J2EE应用发布WebService服务

1介绍 CXF号称是SOA框架,上一篇已经简单介绍了下WebService和CXF,这篇不再累述. 可能下面这张图可以很清楚地说明WebService在J2EE系统间的作用,比如系统间信息交互,或者新旧系统的整合等等....

蜡笔小小小新 ⋅ 2015/12/27 ⋅ 0

CXF发送和接收消息超时设置

在使用WebService时,我们通常都会在客户端中设置请求超时的限制,以避免长时间的去连接不可用的服务器。在CXF的环境下,客户端可通过两个属性配置超时限制: ConnectionTimeout - WebServi...

黑帽子 ⋅ 2013/09/13 ⋅ 0

spring+cxf开发Restful接口关于Json数据的传输

用CXF的RESTFul,接收前端传来的json数据,请求发送时报错

他认为认为高峰时段个 ⋅ 2016/08/31 ⋅ 0

spring+cxf整合,服务器端访问wsdl文件报错

4.0.0

薄暮凉年 ⋅ 2015/06/15 ⋅ 5

(3)JavaScript 之 DOM编程

DOM 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚...

MK先生 ⋅ 2016/08/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Greys Java在线问题诊断工具

Greys是一个JVM进程执行过程中的异常诊断工具。 在不中断程序执行的情况下轻松完成JVM相关问题排查工作 目标群体 有时候突然一个问题反馈上来,需要入参才能完成定位,但恰恰没有任何日志。回...

素雷 ⋅ 25分钟前 ⋅ 0

git从远程仓库拉取代码的常用指令

一种(比较麻烦的)拉代码的方法 git clone //克隆代码库,与远程代码库的主干建立连接,如果主干已经在就不用再clone啦,克隆路径为当前路径下的新创建的文件夹 git checkout -b //本地建立...

Helios51 ⋅ 39分钟前 ⋅ 0

005. 深入JVM学习—Java堆内存参数调整

1. JVM整体内存调整图解(调优关键) 实际上每一块子内存区域都会存在一部分可变伸缩区域,其基本流程:如果内存空间不足,则在可变的范围之内扩大内存空间,当一段时间之后,内存空间不紧张...

影狼 ⋅ 44分钟前 ⋅ 0

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 今天 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部