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)
@XmlRootElement
class 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?
--
Christopher
twitter: @fakod
blog: http://blog.fakod.eu