我这里是实现有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相关推荐

  1. spring 项目中集成 Protocol Buffers 示例

    http://blog.csdn.net/fangzhangsc2006/article/details/8687388 本文适用于了解spring框架,同时想在spring项目中使用Protocol ...

  2. 在Spring项目中集成使用MongoDB

    在Spring项目中集成使用MongoDB 这里使用的是maven工程,所以依赖jar包都是pom.xml配置型式. pom.xml引入依赖 <properties><spring. ...

  3. Spring框架下集成Activiti 5.17.0的diagram-viewer

     Spring集成Activiti就不说了,到处都是这样的文章,这里只针对新的部分进行一个说明 1.下载Activiti 5.17的源代码:https://github.com/Activiti/ ...

  4. Maven项目集成cxf框架发布WebService

    关于Maven项目集成cxf框架发布和接收WebService 从网上找了很多,发现大多数都是类似"单机"版的发布,直到看了一篇博客,给我很大的启发. 在此感谢这位博客的作者:ht ...

  5. Spring集成CXF发布WebService并在客户端调用

    Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...

  6. maven mybatis mysql_Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问...

    标签: 本篇内容还是建立在上一篇Java Web学习系列--Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Ja ...

  7. wsld2java_脱离spring集成cxf(基于nutz框架)

    什么是webService cxf 简单的说就是实现webService的一个比较流行的框架 http://blog.sina.com.cn/s/blog_6182547f01017pak.html ...

  8. redis集成spring_将Redis集成到您的Spring项目中

    redis集成spring 本文介绍如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzio ...

  9. 将Redis集成到您的Spring项目中

    本文展示了如何通过注释配置将Redis缓存集成到您的spring项目中. 我们将从Gradle配置开始. 我们将使用jedis驱动程序. group 'com.gkatzioura.spring' v ...

  10. 携程Apollo(阿波罗)配置中心在Spring Boot项目快速集成

    前提:先搭建好本地的单机运行项目:http://www.cnblogs.com/EasonJim/p/7643630.html 说明:下面的示例是基于Spring Boot搭建的,对于Spring项目 ...

最新文章

  1. 深度学习的强大应用,且看如何用神经网络给可爱的圆滚滚们发对象!
  2. C语言合并链表merge linked list(附完整源码)
  3. 【转】[程序集清单定义与程序集引用不匹配]分析及解决
  4. navicat不同数据库数据传输
  5. HTML里face作用,html5 – @ font-face在子文件夹中的字体时不起作用
  6. 【老生谈算法】matlab实现模拟退火算法——模拟退火算法
  7. 分布式数据库BLP安全模型介绍
  8. Java单例模式(类和对象)
  9. python中的ln函数_python中的对数log函数表示及用法
  10. Mybatis 入门到理解篇
  11. 【搬运】罗霸道网文写作经验分享
  12. vb.net指定范围内获取随机数
  13. 泰坦尼克号数据的分析研究
  14. 图像处理基础——空间域处理之灰度变换
  15. iOS 录制视频MOV格式转MP4
  16. SATA SSD需要NCQ开启吗?
  17. JVM堆内存释放不及时问题
  18. linux空格键命令,linux 命令(快捷键)
  19. Snmp学习总结系列
  20. 用C++代码实现哔哩哔哩BV号转AV号

热门文章

  1. bzoj2038 [2009国家集训队]小Z的袜子(hose)
  2. heavy dark--读《《暗时间》》
  3. JVM第一节:内存结构
  4. Java爬虫框架Jsoup学习记录
  5. 《python3网络爬虫开发实战》--Ajax数据爬取
  6. vue开发中v-for在Eslint的规则检查下出现:Elements in iteration expect to have 'v-bind:key' directives...
  7. bzoj2463: [中山市选2009]谁能赢呢?(博弈论)
  8. java多线程的常见例子
  9. Spring Boot 集成Shiro和CAS
  10. IIS下安装php5.3