在Spring项目下集成CXF
我这里是实现有Spring+SpringMVC+Mybatis的项目,由于CXF能很好的集成到Spring容器中,所以对于已经使用Spring框架的项目推荐使用CXF框架来添加WebService服务
在项目中集成的步骤(服务端):
1:复制CXF的相关jar包。
2:在web.xml配置CXF的核心控制器:CXFServlet
3:开发一个WebService业务接口,该接口要使用@WebService修饰。
开发一个WebService实现类,实现类也需要用@WebService修饰。
4:在Spring配置文件中导入CXF提供Schema。我这里是重新写了一个cxf-config.xml的配置文件方便分模块和查找,开始进行配置使用jaxws:endpoint元素来暴露WebService。
5:如果要添加拦截器。在jaxws:endpoint元素添加inIntercepts或者outIntercept子元素
详细操作如下:
1:复制CXF的相关jar包其中核心包6个
2:在web.xml配置CXF的核心控制器:CXFServlet
<servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webservice/*</url-pattern></servlet-mapping>
3:开发一个WebService业务接口,该接口要使用@WebService修饰。
开发一个WebService实现类,实现类也需要用@WebService修饰。
package log.controller;import javax.jws.WebService;import net.sf.json.JSONObject;@WebService
public interface TestWebservice {public abstract void say();public String login(String userName, String password); }
package log.controller;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.jws.WebService;import net.sf.json.JSONArray;
import net.sf.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import dj.log.dao.EmployeeMapper;
import dj.log.service.EmployeeService;
import dj.log.service.LogService;@WebService(endpointInterface = "log.controller.TestWebservice", serviceName = "TestWebserviceImpl")
public class TestWebserviceImpl implements TestWebservice {@Autowiredprivate EmployeeService employeeService;@Autowiredprivate EmployeeMapper employeeMapper;@Autowiredprivate LogService logService;/** (non-Javadoc)* * @see dj.log.controller.TestWebservice#say()*/@Overridepublic void say() {System.out.println("dddddddddddddddddd");}public String login(String userName, String password) {JSONObject json=new JSONObject(); List<Map<String, Object>> userInfo = logService.selectLogin(userName,password);String respMessage = "0";if (userInfo.size() > 0) {respMessage = "1";json.put("userName", userName);json.put("password", password);json.put("emp_id",userInfo.get(0).get("EMP_ID"));json.put("roles",userInfo.get(0).get("ROLES")); }json.put("respMessage", respMessage);
// PrintWriter out = response.getWriter();
// out.print(json.toString());
// out.close();return json.toString();}}
4:在Spring配置文件中导入CXF提供Schema。我这里是重新写了一个cxf-config.xml的配置文件方便分模块和查找,开始进行配置使用jaxws:endpoint元素来暴露WebService:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"><!-- 引用cxf包下的配置 --><import resource="classpath:META-INF/cxf/cxf.xml" /><import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /><import resource="classpath:META-INF/cxf/cxf-servlet.xml" /><!--声明一个bean --><bean id="testWebservice" class="controller.TestWebserviceImpl" /><!-- 通过这个bean来暴露WebService implementor=""这个bean实现相关的业务逻辑:可以直接写类的路径,也可以直接写已经声明的bean为了更好的使用Spring的依赖注入我们使用声明好的beanaddress="/RCSWebService" 指定访问的路径--><jaxws:endpoint id="myWebService" implementor="#testWebservice"address="/RCSWebService" /></beans>
在客户端调用的步骤:
1:下载apache-cxf文件,并配置系统环境变量path路径,我这里使用apache-cxf-2.7.6
2:调用cxf提供的wsdl2java工具,根据wsdl文档生成相应的java代码。
3:找到生成的类中一个继承了Service的类。该类的实例可以当做工厂类来使用。通过调用的该类的getXXX获得对象返回赋给一个代理类,通过代理类调用对应的方法
TestWebserviceImpl test = new TestWebserviceImpl();TestWebservice testdao = test.getTestWebserviceImplPort();testdao.say();
转载于:https://blog.51cto.com/wahahahaha/1740771
在Spring项目下集成CXF相关推荐
- spring 项目中集成 Protocol Buffers 示例
http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...
- 在Spring项目中集成使用MongoDB
在Spring项目中集成使用MongoDB 这里使用的是maven工程,所以依赖jar包都是pom.xml配置型式. pom.xml引入依赖 <properties><spring. ...
- Spring框架下集成Activiti 5.17.0的diagram-viewer
Spring集成Activiti就不说了,到处都是这样的文章,这里只针对新的部分进行一个说明 1.下载Activiti 5.17的源代码:https://github.com/Activiti/ ...
- Maven项目集成cxf框架发布WebService
关于Maven项目集成cxf框架发布和接收WebService 从网上找了很多,发现大多数都是类似"单机"版的发布,直到看了一篇博客,给我很大的启发. 在此感谢这位博客的作者:ht ...
- Spring集成CXF发布WebService并在客户端调用
Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...
- maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...
标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...
- wsld2java_脱离spring集成cxf(基于nutz框架)
什么是webService cxf 简单的说就是实现webService的一个比较流行的框架 http://blog.sina.com.cn/s/blog_6182547f01017pak.html ...
- redis集成spring_将Redis集成到您的Spring项目中
redis集成spring 本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzio ...
- 将Redis集成到您的Spring项目中
本文展示了如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzioura.spring' v ...
- 携程Apollo(阿波罗)配置中心在Spring Boot项目快速集成
前提:先搭建好本地的单机运行项目:http://www.cnblogs.com/EasonJim/p/7643630.html 说明:下面的示例是基于Spring Boot搭建的,对于Spring项目 ...
最新文章
- 深度学习的强大应用,且看如何用神经网络给可爱的圆滚滚们发对象!
- C语言合并链表merge linked list(附完整源码)
- 【转】[程序集清单定义与程序集引用不匹配]分析及解决
- navicat不同数据库数据传输
- HTML里face作用,html5 – @ font-face在子文件夹中的字体时不起作用
- 【老生谈算法】matlab实现模拟退火算法——模拟退火算法
- 分布式数据库BLP安全模型介绍
- Java单例模式(类和对象)
- python中的ln函数_python中的对数log函数表示及用法
- Mybatis 入门到理解篇
- 【搬运】罗霸道网文写作经验分享
- vb.net指定范围内获取随机数
- 泰坦尼克号数据的分析研究
- 图像处理基础——空间域处理之灰度变换
- iOS 录制视频MOV格式转MP4
- SATA SSD需要NCQ开启吗?
- JVM堆内存释放不及时问题
- linux空格键命令,linux 命令(快捷键)
- Snmp学习总结系列
- 用C++代码实现哔哩哔哩BV号转AV号
热门文章
- bzoj2038 [2009国家集训队]小Z的袜子(hose)
- heavy dark--读《《暗时间》》
- JVM第一节:内存结构
- Java爬虫框架Jsoup学习记录
- 《python3网络爬虫开发实战》--Ajax数据爬取
- vue开发中v-for在Eslint的规则检查下出现:Elements in iteration expect to have 'v-bind:key' directives...
- bzoj2463: [中山市选2009]谁能赢呢?(博弈论)
- java多线程的常见例子
- Spring Boot 集成Shiro和CAS
- IIS下安装php5.3