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

项目采用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文档,说明发布成功。

 

转载于:https://my.oschina.net/u/3424649/blog/897963

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值