zoukankan      html  css  js  c++  java
  • 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" 
    

      如下图:

     

  • 相关阅读:
    App开放接口api安全性—Token签名sign的设计与实现
    查看文件(或文件夹)被哪个进程使用【文件已在另一程序中打开】
    利用递归将数组转码
    h5 定位
    使用OAuth Server PHP实现OAuth2服务
    在Linux上安装jdk,mysql,tomcat的准备工作
    Core Java笔记
    随机森林简介
    Linux 查看操作系统版本
    RNA_seq GATK 最佳实践
  • 原文地址:https://www.cnblogs.com/Big-Boss/p/11912679.html
Copyright © 2011-2022 走看看