转自: http://www.cnblogs.com/xiaochangwei/p/5399507.html

继上一篇webService入门之后,http://www.cnblogs.com/xiaochangwei/p/4969448.html ,现在我将我周六在家研究的结果公布出来

本次集成是基于之前已经搭建好的SpringMVC+mybatis+shiro的基础上进行的,看似很简单的集成,但是由于jar包冲突,搞了好久,牺牲周六休息时间奉上结果

代码文章末尾会给出下载地址的,请大家不用担心,这些都是我搭建的,还不是很完善,要用于商业项目请修改完善。

步骤:

① 首先在 http://cxf.apache.org/download.html 下载最新版本的CXF,我下载的是3.1.6

② 由于不maven项目,所以拷贝下载的cxf lib目录下的所有包到项目的lib路径下。(我在这里尝试一个个添加,后来jar包冲突了,改天优化下,找出最精简的jar包)

③ 写接口文件和接口的实现文件

接口文件如下,需要注意的是,接口文件上要添加@WebService注解,否则待会儿接口发布后,有这个服务,却没有可供调用的接口方法(自己各种条件下的尝试,不对请拍砖)

package com.xiaochangwei.web.service;import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;@WebService
@SOAPBinding(style = Style.RPC)
public interface WebserviceTest {public String getUserByName(@WebParam(name = "username") String username);public void setUser(String username);public boolean getuser(String name, String password);public boolean test3();
}

接口实现类如下,经测试,接口实现类不需要添加@WebService注解,当然添加了也没报错

package com.xiaochangwei.web.service.impl;import com.xiaochangwei.web.service.WebserviceTest;public class WebServiceTestImpl implements WebserviceTest {@Overridepublic String getUserByName(String username) {return "Hello:" + username;}@Overridepublic void setUser(String username) {System.out.println("username:" + username);}@Overridepublic boolean getuser(String name, String password) {return false;}@Overridepublic boolean test3() {return false;}}

④ 修改web.xml文件,在末尾增加filter配置

<!-- cxf服务启动servlet --><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webService/*</url-pattern></servlet-mapping>

⑤ 在Spring配置文件,默认为applicationContext.xml中增加下列代码,需要注意的是:请加入xsd信息 注意加大加粗的字

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc"xmlns:cache="http://www.springframework.org/schema/cache"xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:soap="http://cxf.apache.org/bindings/soap"xsi:schemaLocation="http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/jdbchttp://www.springframework.org/schema/jdbc/spring-jdbc.xsdhttp://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util.xsdhttp://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd   http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"><!-- 引入CXF配置文件,低版本还需引入其他两个文件 --><import resource="classpath:META-INF/cxf/cxf.xml" /> <!-- 配置方式1   注意:serviceClass为接口类并非实现类 --><jaxws:server serviceClass="com.xiaochangwei.web.service.WebserviceTest" address="/webSerciceTest_service_jaxws"></jaxws:server><!-- 配置方式2    注意:implementor为接口的具体实现类 --><jaxws:endpoint implementor="com.xiaochangwei.web.service.impl.WebServiceTestImpl" address="/webSerciceTest_endpoint" ></jaxws:endpoint>

上面我提供了两种配置方式,请留意注意事项,

serviceClass : 配置的为接口定义类
implementor  : 配置的为接口的实现类,且接口实现类上面不需要增加@WebService注解标签

⑥ 启动tomcat并测试,启动时留意控制台可以查看配置是否可供调用。

我的启动日志如下:

可以看到我们以两种方式配置的发布地址都成功了,现在打开浏览器进行测试,请注意后面加上?wsdl

另一个和上面这个一样,就不再截图了。

欢迎共勉,不对请拍砖,谢谢!

源码我近期整理好后上传到网盘再贴上下载地址,整理好后的源码可以直接用于商业项目开发,届时欢迎各位架构师指点下小弟

未整理的源码下载:http://pan.baidu.com/s/1eSuIQxs (请勿用于商业项目,若需使用请完善,整理好的代码近期会更新上去)

下一篇我将发布SpringMVC下,怎么根据别人发布了的webService wsdl来进行调用

ps: wsdl 全称是 web service description language  接口的描述,如果你看到这里还不知道wsdl是什么意思,请受小弟一拜  o(∩_∩)o 哈哈

转载于:https://www.cnblogs.com/weizhxa/p/6839403.html

Springmvc集成CXF请看教程二相关推荐

  1. SharePoint 集成PowerApps和Flow教程(二,第一个PowerApps程序)

    SharePoint 集成PowerApps和Flow教程(二,第一个PowerApps程序) 使用Excel 数据创建一个APP. 我的第一个PowerApp使用的Excel文件作为数据源,数据文件 ...

  2. 单机启动nacos_SpringBoot集成Nacos的详细教程

    一.环境说明 1.CentOS7 2.Jdk1.8 3.Mysql5.7 4.Nacos1.3 5.SpringBoot2.3.1.RELEASE 6.Maven3.6 二.下载Nacos 三.解压启 ...

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

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

  4. 以太坊构建DApps系列教程(二):构建TNS代币

    在本系列关于使用以太坊构建DApps教程的第1部分中,我们引导大家做了两个版本的本地区块链进行开发:一个Ganache版本和一个完整的私有PoA版本. 在这一部分中,我们将深入研究并构建我们的TNS代 ...

  5. 如何介绍简历中的项目呢?请看软件测试老师的分享

    项目经验与工作经验是相辅相成的,但较之于工作经验,项目经验更侧重于表现求职者在某个专业领域内的技能水平(技能水平决定了工资水平).因而,技术类岗招聘的时候,更注重项目经验.项目介绍是有套路的,面试时, ...

  6. Spring Boot教程(二十):Spring Boot使用String Task定时任务

    一.JAVA常见的几种定时任务比较 Timer:jdk自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让程序按照某一个频度执行, ...

  7. 三方开源库(具体的地址请看)

    这里写链接内容 https://github.com/7heaven/bitmapMesh Android开源项目及库整理总结 字数10731阅读234评论0喜欢4 自己总结的Android开源项目及 ...

  8. 转自程先的专栏:如果是初学C语言请看完 一些成功人士的心得

    如果是初学C语言请看完 一些成功人士的心得 转自程先的专栏     今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所有 ...

  9. Konstrukt PHP REST框架 教程二

    Konstrukt PHP REST框架 教程二 入门 - 第2部分 在本教程中,我们假设你已经完成了第一个教程,因为它的基础上产生的代码从该. 谈判的Content-Type 在大多数情况下会发出一 ...

最新文章

  1. 华为诺亚加法网络再升级:精度提升,可以逼近任意函数
  2. 缺少 mcrypt 扩展。请检查 PHP 配置。(phpmyadmin)
  3. 【整理】视图簇View cluster的创建
  4. python数学函数_「分享」关于Python整理的常用数学函数整理
  5. Day31 python基础--网络编程基础-socketserver
  6. vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法
  7. yii2 shi用modal弹窗 select2搜索框无法使用
  8. All Things Intelligence—Baidu World 2020
  9. 【翻译】Brewer's CAP Theorem CAP定理
  10. 关系型数据库(八),数据库其他面试题
  11. 热烈祝贺龙芯Loongarch OpenJDK8开源,已编译完成
  12. 网页中用到的对比原则(一):色彩对比
  13. 度量python的运行时间
  14. 利用MATLAB进行shp文件转换并绘制断层线
  15. 《利用Python进行数据分析》第七章——数据清洗与准备
  16. web安全之Webshell管理工具
  17. Kurl——轻量化http-authentication在线暴破工具
  18. 大数据实时传输组件Maxwellmaxwell中遇到的问题
  19. mysql不识别生僻字_MySQL生僻字(不常用字)的完整解决方案
  20. Development Tools 错误解决

热门文章

  1. Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources
  2. [文摘20100706】软件架构师应该知道的97件事
  3. 无意中发现的MSDN软件下载网站
  4. 2020-02-16 Git客户端下载
  5. 十大震撼谷歌地图卫星照
  6. GDAL源码剖析(七)之GDAL RasterIO使用说明
  7. linux中pstree命令的含义,pstree命令--Linux命令应用大词典729个命令解读
  8. oracle——服务器同时安装服务端和客户端冲突
  9. js dojo 读取txt
  10. VC中如何设置Socket的TCP/IP KeepAlive机制(MSDN)