用cxf在web工程中添加webService接口,发布webService服务
2017-05-12 00:00
691 查看
项目采用cxf3.0.13为项目添加webService服务接口,
项目框架采用spring4,springmvc,mybatis。jdk1.8。
用maven管理项目。
tomcat服务器。
本文只介绍了如果在项目中引入cxf框架,暴露webService接口,不涉及项目框架的其他整合,是在其它已经整合成功,项目可以正常访问的情况下,进行的操作。
实现类上也要加上@WebService注解,这里很多其它人介绍说方法上要加上注解@WebMethod,我测试是可以不用加的,可能是cxf版本的问题,比如:
其中implementor是上面写的接口的实现类。address是访问路径。
在applicationContext.xml的文件头中还要添加:
并且在xsi:schemaLocation中添加:
项目框架采用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文档,说明发布成功。
相关文章推荐
- Spring 集成CXF框架发布Webservice服务 和 使用jdk生成Webservice clinet
- 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??
- 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??[转]
- cxf+spring发布webservice接口及接口的调用
- Spring Boot结合cxf发布WebService接口jar包冲突的问题
- iis 6发布webservice服务报错:HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
- 在CXF开发的WebService接口WSDL信息中添加注释
- 基于web的cxf的第二种发布方式——带有接口的发布方式
- (五)CXF整合Spring发布RESTful风格的Web服务
- Spring整合CXF 发布webservice接口服务器(普通及REST)和客户端,WSDL简单解析
- WebService基础课程之使用CXF发布javase服务
- CXF框架学习,发布webservice服务
- 使用CXF实现Webservice的服务接口提供以及相关的客户端实现
- 开发基于CXF的 RESTful WebService web 项目 webservice发布
- webservice发布服务:CXF及客户端调用
- CXF发布webService、tomcat用户验证、axis2(http/https)调用服务
- javaWeb项目发布带没有接口和有接口的WebService服务
- spring与cxf整合开发webservice服务接口
- C/C++通过gSoap发布webservice接口,供ASP.Net网站工程调用
- JAVAEE——BOS物流项目07:WebService入门、apache CXF入门、基于CXF发布CRM服务