Как использовать JSON с клиентом Джерси. NET REST SVC с WebLogic? - PullRequest
0 голосов
/ 18 мая 2011

Мой локальный технический стек - wl 9.2, майка 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 и Джерси, но я учусь.Есть ли способ заставить Джерси / JsonLexer сказать мне, что именно пошло не так?Я знаю, что существует целый ряд различных типов JSON-форматов, так что, возможно, в этом моя проблема?

Любые советы будут приветствоваться.

karoy

1 Ответ

0 голосов
/ 18 мая 2011

Возможно, это просто ошибка копирования и вставки, но следующее недопустимое 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".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...