zoukankan      html  css  js  c++  java
  • cxf maven 依赖 No message body writer foud.. contenttype:application/json

    最近使用cxf发布rest服务时遇到了如题的异常,最后发现是缺少依赖的问题.ps:我并没有使用spring

    cxf基本运行需要如下依赖

     1         <dependency>
     2             <groupId>org.apache.cxf</groupId>
     3             <artifactId>cxf-core</artifactId>
     4             <version>${cxf.version}</version>
     5         </dependency>
     6           <dependency>
     7             <groupId>org.apache.cxf</groupId>
     8             <artifactId>cxf-rt-frontend-jaxws</artifactId>
     9             <version>${cxf.version}</version>
    10         </dependency>
    11         <dependency>
    12             <groupId>org.apache.cxf</groupId>
    13             <artifactId>cxf-rt-transports-http</artifactId>
    14             <version>${cxf.version}</version>
    15         </dependency>
    16         <dependency>
    17             <groupId>org.apache.cxf</groupId>
    18             <artifactId>cxf-rt-transports-http-jetty</artifactId>
    19             <version>${cxf.version}</version>
    20         </dependency>

    如果想要发布rest风格的服务,需要添加如下依赖(看各人需要,有的可能需要添加rs-api的依赖)

     1         <!-- rest风格支持 -->
     2         <dependency>
     3             <groupId>org.apache.cxf</groupId>
     4             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
     5             <version>${cxf.version}</version>
     6         </dependency>
     7         <dependency>
     8             <groupId>org.apache.cxf</groupId>
     9             <artifactId>cxf-rt-rs-extension-providers</artifactId>
    10             <version>${cxf.version}</version>
    11         </dependency>

    这样就可以发布rest风格的服务了,不过这样有个问题,只能使用xml格式的数据,如果使用下面的注解,即添加json格式的返回数据访问时会报如题的no message body writer的异常

    @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})

    所以需要添加如下依赖

    1         <!-- json支持 -->
    2         <dependency>
    3             <groupId>org.codehaus.jettison</groupId>
    4             <artifactId>jettison</artifactId>
    5             <version>${jettison.version}</version>
    6         </dependency>

    总结:出现no message body writer时先检查pojo上是否添加了jaxb的必要标记----@XmlRootElement,其次检查是否缺少依赖关系

  • 相关阅读:
    Chapter01_前言、入门程序、常量、变量
    面向对象知识点总结
    Java快捷键
    上线
    docker
    分页,过滤,搜索,排序
    Celery
    django-redis 缓存使用
    前台登录注册修订
    短信注册接口
  • 原文地址:https://www.cnblogs.com/tele-share/p/9371084.html
Copyright © 2011-2022 走看看