• No message body writer has been found for class com.alibaba.fastjson.JSONObject, ContentType: */*


    1:当使用 cxf 发布服务时,要求返回值类型为xml,或者json等

        @Path("/searchProductByText")
        @GET
        @Produces({"application/xml", "application/json"})
        JSONObject productSearch(@QueryParam("text") String text);

    但是 cxf不支持解析  JSONObject 等对象

    进行访问时将会返回    No message body writer has been found for class com.alibaba.fastjson.JSONObject, ContentType: */*

    2:解决方法,定义一个pojo,里面包含 JSONObject  引用。将返回的JSONObject包含在 自定义的 POJO中,使用注解将pojo定义为能被解析为xml形式等。

        

    package com.search.pojo;
    
    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.annotation.JsonInclude;
    
    import javax.xml.bind.annotation.XmlRootElement;
    
    //@JsonInclude(JsonInclude.Include.NON_NULL)//不包含有null值的字段,即字段值为null的转换为json字符串时会被省略
    @XmlRootElement(name="MyJSONObject")
    public class MyJSONObject {
        JSONObject jsonObject;
    
        public JSONObject getJsonObject() {
            return jsonObject;
        }
    
        public void setJsonObject(JSONObject jsonObject) {
            this.jsonObject = jsonObject;
        }
    }

    3:在实现类中,返回对象变为 pojo

         

           MyJSONObject myJSONObject=new MyJSONObject();
            myJSONObject.setJsonObject(jsonObject);
            return myJSONObject;

    4:接口 方法 返回 也变为 pojo

        

        @Path("/searchProductByText")
        @GET
        @Produces({"application/xml", "application/json"})
        MyJSONObject productSearch(@QueryParam("text") String text);

    5  可以返回值了。

     6:前端接到响应体中的xml,可以转化为json

      

                httpResponse = httpUtil.HttpGet(requestParamMap, url);
                HttpEntity entity = httpResponse.getEntity();
                String s = EntityUtils.toString(entity);
                //将返回的xml字符串形式转化为json格式
                org.json.JSONObject xmlJSONObj = XML.toJSONObject(s);
                jsonObject = (JSONObject) JSON.parse(xmlJSONObj.toString());
  • 相关阅读:
    PHP中的call_user_func()与call_user_func_array()简单理解
    PHP实现多继承
    PHP实现多继承 trait 语法
    PHP几种常见魔术方法与魔术变量解析
    tp5 的nginx配置
    PHP 扩展 trie-tree, swoole过滤敏感词方案
    PHP Ajax跨域问题解决办法
    附加个人作业
    学完软工的感受
    团队介绍
  • 原文地址:https://www.cnblogs.com/liyafei/p/8574339.html
Copyright © 2020-2023  润新知