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
的確,感謝您的支持。從doc的另一部分複製了異常定義錯誤。 – Karoy 2011-05-18 00:35:57
有一件事我已經認識到:.net REST服務器的響應具有BOM或字節順序標記,它們位於JSON正文前面。 – Karoy 2011-05-31 23:41:16