2011-05-18 42 views
0

我的本地技術棧是wl 9.2,球衣1.1.5.1。如何使用JSON與澤西客戶端.net REST與weblogic的svc?

遠程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/JsonLexer告訴我究竟出了什麼問題? 我知道那裏有許多不同類型的JSON格式,所以也許這是我的問題?

任何提示將不勝感激。

karoy

回答

0

也許它只是一個複製和粘貼錯誤,但是下面是無效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"

+0

的確,感謝您的支持。從doc的另一部分複製了異常定義錯誤。 – Karoy 2011-05-18 00:35:57

+0

有一件事我已經認識到:.net REST服務器的響應具有BOM或字節順序標記,它們位於JSON正文前面。 – Karoy 2011-05-31 23:41:16