文档章节

用cxf在web工程中添加webService接口,发布webService服务

woodcoder
 woodcoder
发布于 2017/05/12 09:32
字数 501
阅读 33
收藏 0

项目采用cxf3.0.13为项目添加webService服务接口,

项目框架采用spring4,springmvc,mybatis。jdk1.8。

用maven管理项目。

tomcat服务器。

本文只介绍了如果在项目中引入cxf框架,暴露webService接口,不涉及项目框架的其他整合,是在其它已经整合成功,项目可以正常访问的情况下,进行的操作。

1、首先在pom.xml中引入cxf框架的依赖

<dependency>  
            <groupId>org.apache.cxf</groupId>  
            <artifactId>cxf-rt-frontend-jaxws</artifactId>  
            <version>3.0.13</version>  
        </dependency>  
        <dependency>  
            <groupId>org.apache.cxf</groupId>  
            <artifactId>cxf-rt-transports-http</artifactId>  
            <version>3.0.13</version>  
    </dependency>  

2、创建接口和接口的实现类

接口类加上注解@WebService,比如:

@WebService
public interface HisLisWsService {

	public List<String> getPatientInfoByMedicalCard(String medicalCard);
}

实现类上也要加上@WebService注解,这里很多其它人介绍说方法上要加上注解@WebMethod,我测试是可以不用加的,可能是cxf版本的问题,比如:

@WebService
public class HisLisWsServiceImpl implements HisLisWsService {
	
	@Override
	public List<String> getPatientInfoByMedicalCard(String medicalCard) {
		List<String> list = new ArrayList<>();
		list.add("张三");
		list.add("女");
		list.add("45");
		list.add(medicalCard);
		return list;
	}
}

3、在spring配置文件中配置需要暴露的接口

在spring的配置文件,如applicationContext.xml中添加如下代码。

其中implementor是上面写的接口的实现类。address是访问路径。

    <import resource="classpath:META-INF/cxf/cxf.xml" />  
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
     
    <!-- 要暴露给外部调用的接口,address:请求路径 -->  
    <jaxws:endpoint  implementor="cn.com.his.webservice.impl.HisLisWsServiceImpl"
     address="/hisLisInterface"></jaxws:endpoint>  

在applicationContext.xml的文件头中还要添加:

xmlns:jaxws="http://cxf.apache.org/jaxws"

并且在xsi:schemaLocation中添加:

http://cxf.apache.org/jaxws   
        http://cxf.apache.org/schemas/jaxws.xsd

4、在web.xml中添加CXFServlet

注意这里的url-pattern为/services/*,也就是我们项目发布后,webService的接口访问地址就为

http://ip地址:端口号/项目名称/services/hisLisInterface?wsdl

<servlet>  
        <servlet-name>CXFService</servlet-name>  
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>CXFService</servlet-name>  
        <url-pattern>/services/*</url-pattern>  
    </servlet-mapping>  

5、启动项目,访问

例如我的访问地址为:http://localhost:8080/his_portal/services/hisLisInterface?wsdl

其中?wsdl是访问webservice服务的固定后缀。

访问会得到xml格式的wsdl文档,说明发布成功。

 

© 著作权归作者所有

woodcoder
粉丝 0
博文 3
码字总数 810
作品 0
成都
私信 提问
使用cxf发布webservice总结

一、概念 1、什么是webservice Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分...

漂泊者及其影子
2014/08/21
0
0
新手初识webservice-实践篇

理论背景:《新手初识webservice-理论篇》http://my.oschina.net/achi/blog/52766 编程语言:Java 必要技能:JavaWeb,MVC,Spring IOC 情景假设:你刚用Java做了个网上店铺,用了servlet,MVC...

路飞
2012/04/12
0
5
spring+restful service

Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述...

游宵
2014/04/25
0
1
Apache CXF 和 Spring 开发 Web Service 1

正文 为什么使用CXF 本文段摘录自 http://www.ibm.com/developerworks/cn/webservices/ws-pojo-springcxf/index.html Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务...

洋葱94
2015/12/04
0
0
spring集成cxf实现webservice接口功能

由于cxf的web项目已经集成了Spring,所以cxf的服务类都是在spring的配置文件中完成的。以下是步骤: 第一步:建立一个web项目。 第二步:准备所有jar包。将cxf_homelib项目下的所有jar包全部...

架构师小跟班
2018/07/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C 语言 二级指针的使用

#include <stdio.h>#include <stdlib.h>typedef struct node Node;struct node {int data;struct node* next;struct node* prev;};Node head;Node* insert(Node......

小张525
43分钟前
2
0
【大数据技术】——Hadoop(1)

什么是大数据 基本概念 《数据处理》 在互联网技术发展到现今阶段,大量日常、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经...

须臾之余
57分钟前
7
0
比特币从地址逆向计算私钥

区块链 区块链简介 说到比特币,就不得不提区块链。那什么是区块链呢? 区块链本质是一个数据集,只不过数据的组织采用了比较特殊的方式,就是把数据拆分为一块一块的小数据集。 为什么要进行...

trayvon
今天
1
0
TypeScript……真香

写前端或者用 node 写命令行小工具一直采用的 es6 的语法,对于 TypeScript 则是秉持敬而远之的态度,毕竟团队中多推广一门语言所需要花费的精力都是让人望而却步的。所以对于 JavaScript 的...

郁也风
今天
3
0
shell基本案例

1、自定义rm linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做...

寰宇01
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部