项目是用SSM+Maven构建,在整合WebService时,将遇到问题解决方式记录如下:

基于WS风格使用方式
1、所需要类库:
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.2.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>3.2.4</version>
    </dependency>

<dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>stax2-api</artifactId>
        <version>3.1.4</version>
    </dependency>

<dependency>
        <groupId>org.codehaus.woodstox</groupId>
        <artifactId>woodstox-core-asl</artifactId>
        <version>4.4.1</version>
    </dependency>

2、添加cxf.xml文件

<?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.xsd
       http://cxf.apache.org/jaxws
       http://cxf.apache.org/schemas/jaxws.xsd">

<!--
        Spring整合CXF发布基于WS的服务配置文件:
        address:服务地址
        serviceClass:服务的接口
        serviceBeans:服务实现类
        访问地址:http://localhost:8080/ws/manuService/
    -->
    <bean id="mywsInterceptor" class="com.modules.webservice.interceptor.MyInterceptor"/>
    <jaxws:server address="/manuService" serviceClass="com.modules.webservice.service.IManuService">
        <jaxws:serviceBean>
            <bean class="com.modules.webservice.service.impl.ManuServiceImpl"></bean>
        </jaxws:serviceBean>
        <jaxws:inInterceptors>
            <ref bean="mywsInterceptor"></ref>
        </jaxws:inInterceptors>
    </jaxws:server>
</beans>

3、客户端动态调用wsdl文件
String operation = "方法名";//调用方法名称
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = clientFactory.createClient("http://IP:端口/项目名ws/manuService?wsdl");
//解决服务端接口和实现文件目录不一致导致的No operation was found with the name异常
Endpoint endpoint = client.getEndpoint();
QName qname = new QName(endpoint.getService().getName().getNamespaceURI(),operation);
BindingInfo bindingInfo = endpoint.getEndpointInfo().getBinding();
if(bindingInfo.getOperation(qname) == null){
    for(BindingOperationInfo operationInfo :bindingInfo.getOperations()){
        if(operation.equals(operationInfo.getName().getLocalPart())){
            qname = operationInfo.getName();
            break;
        }
    }
}
Object[] result = client.invoke(qname,"入参,可为空");
System.out.println(result[0]);

4、遇到问题:
a、cxf的类库与stax2-api类库和woodstox-core-asl类库存在版本匹配问题,出现错误时:cxf-3.2.6,stax2-api-4.1,woodstox-core-asl-4.4.1。
问题现象是:本地Windows环境和虚拟器Centos环境均正常,部署到阿里云Centos出现wsdl无法访问,
访问wsdl,报500错误:java.lang.NoSuchMethodError:org/codehaus/stax2/ri/EmptyIterator。
对于客户端,错误提示信息是: javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory。
解决方案:
采用的cxf-3.2.4、stax2-api-3.1.4和woodstox-core-asl-4.4.1组合,可正常使用。

Spring项目整合WebService服务遇到问题记录相关推荐

  1. Guava Cache探索及spring项目整合GuavaCache实例

    背景 对于高频访问但是低频更新的数据我们一般会做缓存,尤其是在并发量比较高的业务里,原始的手段我们可以使用HashMap或者ConcurrentHashMap来存储. 这样没什么毛病,但是会面临一个问 ...

  2. spring boot 整合RESTFUL服务

    目录 1.自定义请求路径 2.自定义查询方法 3.隐藏方法 4.配置cors 5.其他配置 1.添加restful项目的pom文件 <dependency><groupId>o ...

  3. Eclipse+Maven+Spring+CXF 构建webservice 服务

    一.   软件准备 Eclipse 4.2.1 Maven 2.2.1 Spring 3.2.6 CXF 3.0.2 软件下载和Eclipse 安装 maven插件等请參考其它文章. 二.   步骤 ...

  4. Spring Boot整合Security+Swagger2踩坑记录,Swagger2无法访问首页

    问题: 访问不了Swagger的页面 有可能出现的原因: 1.Security将访问拦截掉了 2.给拦截器拦截了 3.Swagger返回的结果,被自己定义的拦截器or其他方式给篡改了数据,导致无法正常 ...

  5. mongodb java项目 源码_spring项目整合mongodb进行开发

    spring项目整合mongodb进行开发: MongoDB的性能指标: 100个并发,插入550万条记录的平均吞吐量:大约4100条/秒 MONGODB实际上是一个内存数据库,先将数据保存到内存,然 ...

  6. Spring和CXF整合发布WebService(服务端、客户端)

    参考Spring和CXF整合发布WebService(服务端.客户端) 转载于:https://www.cnblogs.com/timspace/p/11113576.html

  7. spring整合webservice

    主要讲解点: WebServiceCXF介绍(了解) JAX-WS服务独立发布及测试.JAX-WS整合spring开发及测试(了解) JAX-RS服务独立发布及测试.JAX-RS整合spring开发及 ...

  8. Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】

    通过上一篇<分布式服务跟踪(整合logstash)>,我们虽然已经能够利用ELK平台提供的收集.存储.搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利.但是,在ELK平台中的数据分析 ...

  9. Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】

    通过之前的<入门示例>,我们已经为两个由SpringCloud构建的微服务项目 trace-1和 trace-2引入了Spring Cloud Sleuth的基础模块 spring-clo ...

最新文章

  1. python使用HanLP进行句法分析实战
  2. python请输入_不断提示用户输入Python
  3. jQuery的DOM操作之取值/赋值(1)
  4. 对某机构为“转移内部矛盾”而嫁祸于我们的事件之真相大起底
  5. NOIP2012模拟试题【奶牛晒衣服】
  6. access文本框如何分开_ACCESS 2007 如何在窗体中将一个文本框的内容复制给另外一个文本框?...
  7. sha256加密_有加密传输数据的需求?来试试stunnel
  8. 左传 —— 春秋左氏传
  9. Android XML解析之PULL及单元测试
  10. LeetCode 981.基于时间的键值存储(C++)
  11. Django 设置中文和中国时区
  12. 完美电脑主机一拖二,让你夫妻不再抢电脑,一台主机两人独立玩
  13. 大版本号跨越,AIDA64更新6.0版本:更新测试,支持Zen 2架构
  14. fluidsim元件库下载_FluidSIM
  15. 多视图几何三维重建实战系列之COLMAP
  16. 淘宝评论爬取 python pandas
  17. win7下笔记本电脑给手机开热点
  18. 分组交换比起电路交换快速的原因
  19. MAC_BOOKPRO苹果电脑系统常用快捷键大全
  20. c++/c 大整数乘法的分治与递归实现(string存储)

热门文章

  1. Windows操作系统优化
  2. 什么是公钥,,什么是密钥啊 ?有什么区别吗?
  3. 【交换篇】01. 配置线连接登录 ❀ C3750-E ❀ CISCO 交换机
  4. 深度篇——目标检测史(八) 细说 CornerNet-Lite 目标检测
  5. qtp软件测试网站实验报告,软件测试实验报告-QTP的使用
  6. 首席新媒体运营黎想教程:活动运营推广入门全攻略及进阶
  7. word不同页如何设置不同的页眉和页脚
  8. Java系列技术之SpringMVC5框架-钟洪发-专题视频课程
  9. 备战2022年春季面试Java基础面试题库《收藏》
  10. 机器学习-机器学习之集成学习(ensemble learning)