您的位置:首页 > 其它

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

2017-05-12 00:00 691 查看
项目采用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[/code] 

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文档,说明发布成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cxf webservice maven