Spring boot 整合CXF webservice 遇到的问题及解决
将WebService的WSDL生成的代码的命令:
wsimport -p com -s . com http://localhost:8080/service/user?wsdl
Spring boot 整合CXF开发web service 遇到的问题:
1、成功集成cxf后,发现只有webservice服务可以正常使用,其他请求url全部无法正常访问。
解决办法:在发布服务配置类WebServiceConfig.java中,更改此方法名:
@Bean
public ServletRegistrationBean dispatcherServlet()
改为:
@Bean
public ServletRegistrationBean disServlet(){
return new ServletRegistrationBean(new CXFServlet(),"/service/*");//发布服务名称
}
即可成功访问其他url
是因为 public ServletRegistrationBean dispatcherServlet() 把默认映射覆盖掉了,把这个名字改掉,控制类方法就能访问了。
更改此方法明后可以正常其他请求url,webservice服务也正常。
出处:https://blog.csdn.net/hawako/article/details/80556676
2、将webservice的WSDL生成的代码后调用方法,发现List无法set参数。
原因:CXF就是只为List提供一个get方法
解决办法:将List get出来后 add参数就行了,如下代码,
user.getAddresses().addAll(addresses);
3、在客户端测试时,报Exception:两个类具有相同的 XML 类型名称,请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称,如图所示:

解决办法:找到报错的类


对XmlType重新命名(最简单粗暴的方法):


此解决办法来自:https://www.cnblogs.com/hedongfei/p/7652583.html
4、在CXF调用接口的代码时,本地测试的时候,没有出现任何问题,但是将包部署到服务器的时候,client调用invoke方法的时候,出现了一段异常报错:Caused by: java.lang.ClassNotFoundException: com/sun/tools/internal/xjc/api/XJC
原因:在网上查很多资料,大多说是因为服务器环境是指向 jre 而不是JDK,导致缺失依赖 tools.jar
解决办法:
查看JDK配置环境 JAVA_HOME 配置是否为 JDK,如不是,改为JDK;
服务器上给 tomcat 指定 jdk 版本:在catalina.sh(或者catalina.bat)文件的开头,写入下面代码,为该Tomcat启动时指定特定版本的 jdk,
export JAVA_HOME=/usr/local/jdk1.8 --路径是:Jdk8所在的目录
export CATALINA_OPTS="-Djava.awt.headless=true"
如下图:

Spring boot 整合CXF webservice 遇到的问题及解决的更多相关文章
- Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 – <史蒂夫·乔布斯传> 』 运行环境: ...
- spring boot整合jsp的那些坑(spring boot 学习笔记之三)
Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency> <groupId>or ...
- spring boot 系列之四:spring boot 整合JPA
上一篇我们讲了spring boot 整合JdbcTemplate来进行数据的持久化, 这篇我们来说下怎么通过spring boot 整合JPA来实现数据的持久化. 一.代码实现 修改pom,引入依赖 ...
- Spring Kafka和Spring Boot整合实现消息发送与消费简单案例
本文主要分享下Spring Boot和Spring Kafka如何配置整合,实现发送和接收来自Spring Kafka的消息. 先前我已经分享了Kafka的基本介绍与集群环境搭建方法.关于Kafka的 ...
- Spring Boot整合Mybatis并完成CRUD操作
MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...
- spring boot整合Hadoop
最近需要用spring boot + mybatis整合hadoop,其中也有碰到一些坑,记录下来方便后面的人少走些弯路. 背景呢是因为需要在 web 中上传文件到 hdfs ,所以需要在spring ...
- Spring Boot整合Elasticsearch
Spring Boot整合Elasticsearch Elasticsearch是一个全文搜索引擎,专门用于处理大型数据集.根据描述,自然而然使用它来存储和搜索应用程序日志.与Logstash和K ...
- spring boot 整合 百度ueditor富文本
百度的富文本没有提供Java版本的,只给提供了jsp版本,但是呢spring boot 如果是使用内置tomcat启动的话整合jsp是非常困难得,今天小编给大家带来spring boot整合百度富文本 ...
- spring boot 整合quartz ,job不能注入的问题
在使用spring boot 整合quartz的时候,新建定时任务类,实现job接口,在使用@AutoWire或者@Resource时,运行时出现nullpointException的问题.显然是相关 ...
随机推荐
- WPF之Treeview实现MVVM双向绑定
Treeview分别有两个数据模板HierarchicalDataTemplate(层级数据模板)和DataTemplate(数据模板),分别应用于生成子数据项和普通数据项. 在使用过程中,如果对两个 ...
- Python excel文件操作,编程练习题实例七十五
纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示: { "1":["张三",150,120,100], "2" ...
- JavaWeb_(Struts2框架)Struts创建Action的三种方式
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- Vue_(基础)Vue中的事件
Vue.js中文文档 传送门 Vue@事件绑定 v-show:通过切换元素的display CSS属性实现显示隐藏: v-if:根据表达式的真假实现显示隐藏,如果隐藏,它绑定的元素都会销毁,显示的时候 ...
- HTML标签功能分类
按功能类别对HTML标签进行分类,源自HTML 参考手册 基础 标签 描述 <!DOCTYPE> 定义文档类型. html 定义 HTML 文档. title 定义文档的标题. body ...
- 线程系列5--java中的ThreadLocal类实现线程范围内的数据共享(二)
ThreadLocal类可以理解成一个类似与map集合使用,以当前线程当做key 来使用,将线程氛围内需要共享的数据当做value,形成键值对的形式使用.ThreadLocal和线程同步机制都是为了解 ...
- C++入门经典-例7.6-this指针,同一个类的不同对象数据
1:对于类的非静态成员,每个对象都有自己的一份拷贝,即每个对象都有自己的数据成员,不过成员函数却是每个对象共享的.那么调用共享的成员函数如何找到自己的数据成员呢?答案是通过类中隐藏的this指针. 2 ...
- centos7 - mysql修改密码
set password for 'root'@'localhost'=password('MyNewPass4!'); mysql5.7默认安装了密码安全检查插件(validate_password ...
- yum源问题
配置本地yum源 1.使用工具将iso文件上传到操作系统,或者直接挂载iso文件 2.配置yum #cd /etc/yum.repos.d/ 删除多余的repo文件 # vi /etc/yum.rep ...
- Fragment的生命周期和activity如何的一个关系