【问题标题】:how to use json with jersey client to .net REST svc with weblogic?如何使用带有 jersey 客户端的 json 到带有 weblogic 的 .net REST svc?
【发布时间】:2011-08-27 16:09:25
【问题描述】:

我的本​​地技术栈是 wl 9.2,jersey 1.1.5.1。

远程 REST svc 在 ASP.net 中,请求正文中的响应在文档中描述为

{
    "Context" : 
    {
        "ID" : "0c351860a82d",        
        "Action" : "SomeAction",        
        "MessageID" : "5d220b792d7f",        
        "UriString" : "",        
        "ReferenceID" : "3ee8c695ffa5",        
        "Time" : "2009-02-11T01:37:44.52",        
        "ControlNbr" : "1.001"
    },    
    "Answer" : 
    {
        "Code" : 0,        
        "Detail" : ""
    },    
    "Exceptions" : [{
            "Code": 1,
            "Text": "Missing value ",
            "Trace": "trace from error.."
        },{
            "Code": 2,
            "Text": "Invalid input ",
            "Trace": "trace from error.."
        } ],   
    "Salt" : "196ac409",    
    "TmpKey" : "3ee8c695ffa5"
}

我已尝试将上述内容映射到以这样开头的 POJO:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SvcResponseBean {

    public SvcResponseBean() {}

    @XmlElement(name="Context")
    public ContextBean ctx;

    @XmlElement(name="Answer")
    public AnswerBean answ;

    @XmlElement(name = "Exceptions")
    public List<ExceptionBean> exs = new ArrayList<ExceptionBean>();

    @XmlElement(name="Salt")
    public String salt;

    @XmlElement(name="TmpKey")
    public String tmpKey;

    public void add(ExceptionBean eb) {exs.add(eb);}
}

svc 的所有者对我的帮助只有这么多,而泽西岛的帮助不大。 在运行时,调用

ClientResponse myClientResponse= myWebResourceBuilder.get(ClientResponse.class);
SvcResponseBeanpsrb = myClientResponse.getEntity(SvcResponseBean.class);

呱呱叫

java.lang.Error: Error: could not match input
at com.sun.jersey.json.impl.reader.JsonLexer.zzScanError(JsonLexer.java:468)
at com.sun.jersey.json.impl.reader.JsonLexer.yylex(JsonLexer.java:713)
at com.sun.jersey.json.impl.reader.JsonXmlStreamReader.nextToken(JsonXmlStreamReader.java:153)

显然,我对 JSON 和 Jersey 不太熟悉,但我正在学习。 有没有办法让 Jersey/JsonLexer 告诉我到底出了什么问题? 我知道有许多不同类型的 JSON 格式,所以这也许是我的问题?

任何提示将不胜感激。

卡罗伊

【问题讨论】:

    标签: java .net json weblogic jersey


    【解决方案1】:

    也许只是复制粘贴错误,但以下不是有效的 JSON:

    "Exceptions" : {
        "Code": 1,
        "Text": "Missing value ",
        "Trace": "trace from error.."
    },{
        "Code": 2,
        "Text": "Invalid input ",
        "Trace": "trace from error.."
    }    
    "Salt" : "196ac409"
    

    没有与值 { "Code": 2, "Text", ... 关联的键,也没有任何东西可以分隔 }"Salt"

    【讨论】:

    • 确实,感谢收看。从文档的另一部分复制了错误的异常定义。
    • 我开始意识到一件事:.net REST 服务器的响应在 JSON 正文前面添加了 BOM 或字节顺序标记。
    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2016-07-09
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多