users@jaxb.java.net

Re: JSON unmarshaling problem

From: Christopher Schmidt <fakod666_at_googlemail.com>
Date: Sat, 11 Dec 2010 09:58:36 +0100

My mail got lost, so I try to send it again...


Hi Pavel, I am using Jersey 1.4 that uses JAXB 2.1.12 AFAIK (I am using maven).

Christopher

On Thu, Dec 9, 2010 at 10:08 AM, Christopher Schmidt
<fakod666_at_googlemail.com> wrote:

Hi all, I want to create Xml root elements for the following JSON
structure:[ {  "start" : "http://localhost:7474/db/data/node/3",

  "nodes" : [ "http://localhost:7474/db/data/node/3",
"http://localhost:7474/db/data/node/1" ],

}, {  "start" : "http://localhost:7474/db/data/node/3",  "nodes" : [
"http://localhost:7474/db/data/node/3",
"http://localhost:7474/db/data/node/2" ],

} ]
I am using a REST interface, Jersey as REST client library and Scala.
If I use Scala objects like these:
@XmlAccessorType(XmlAccessType.FIELD)@XmlRootElement

class GetPath {  var array:java.util.List[TraversePath] = _}
@XmlAccessorType(XmlAccessType.FIELD)@XmlRootElementclass TraversePath
{  var start:String = _

  var nodes . . .}
I get the following error:
java.lang.ArrayIndexOutOfBoundsException: -1 at
java.util.ArrayList.get(ArrayList.java:324)

        at com.sun.jersey.json.impl.reader.JsonXmlStreamReader.valueRead(JsonXmlStreamReader.java:162) at
com.sun.jersey.json.impl.reader.JsonXmlStreamReader.readNext(JsonXmlStreamReader.java:327)

        at com.sun.jersey.json.impl.reader.JsonXmlStreamReader.readNext(JsonXmlStreamReader.java:175) at
com.sun.jersey.json.impl.reader.JsonXmlStreamReader.next(JsonXmlStreamReader.java:445)

        at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:192) at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)

        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339) at
com.sun.jersey.json.impl.BaseJSONUnmarshaller.unmarshalJAXBElementFromJSON(BaseJSONUnmarshaller.java:103)

        at com.sun.jersey.json.impl.BaseJSONUnmarshaller.unmarshalFromJSON(BaseJSONUnmarshaller.java:92) at
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider.readFrom(JSONRootElementProvider.java:100)

        at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:106) at
com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:549)

        at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:502) at
com.sun.jersey.api.client.WebResource.handle(WebResource.java:560)


Any advice?
-- 
Christophertwitter: @fakodblog: http://blog.fakod.eu
-- 
Christophertwitter: @fakodblog: http://blog.fakod.eu
-- 
Christopher
twitter: @fakod
blog: http://blog.fakod.eu