java - RESTEasy -- "Unexpected element" when unmarshaling JSON? -
i writing resteasy client apple's appstore lookup service, returns json object representing results of query. test case json looks this:
{ "resultcount":1, "results": [ { "kind":"software", "features":["gamecenter", "iosuniversal"], "supporteddevices":["all"], "isgamecenterenabled":true, ...<more stuff>... }] } i've created simple jaxb object see if can unmarshal response service using resteasy client. i'm trying map "resultcount" property response. looks this:
@mapped @xmlrootelement @xmlaccessortype(xmlaccesstype.none) public class appstorelookupresponse implements serializable { private static final long serialversionuid = 7589102375949422744l; @xmlelement private int resultcount = -1; /** * returns resultcount * * @return resultcount */ public int getresultcount() { return resultcount; } /** * sets resultcount * * @param resultcount * resultcount set */ public void setresultcount(int resultcount) { this.resultcount = resultcount; } } however, when run client see following exception:
org.jboss.resteasy.plugins.providers.jaxb.jaxbunmarshalexception: javax.xml.bind.unmarshalexception - linked exception: [com.sun.istack.internal.saxparseexception2; columnnumber: 0; unexpected element (uri:"", local:"resultcount"). expected elements <{}appstorelookupresponse>] @ org.jboss.resteasy.plugins.providers.jaxb.abstractjaxbprovider.readfrom(abstractjaxbprovider.java:86) @ org.jboss.resteasy.core.interception.messagebodyreadercontextimpl.proceed(messagebodyreadercontextimpl.java:105) @ org.jboss.resteasy.plugins.interceptors.encoding.gzipdecodinginterceptor.read(gzipdecodinginterceptor.java:37) @ org.jboss.resteasy.core.interception.messagebodyreadercontextimpl.proceed(messagebodyreadercontextimpl.java:108) @ org.jboss.resteasy.core.messagebody.readerutility.doread(readerutility.java:111) @ org.jboss.resteasy.client.core.baseclientresponse.readfrom(baseclientresponse.java:291) @ org.jboss.resteasy.client.core.baseclientresponse.getentity(baseclientresponse.java:255) @ org.jboss.resteasy.client.core.baseclientresponse.getentity(baseclientresponse.java:228) @ org.jboss.resteasy.client.core.extractors.bodyentityextractor.extractentity(bodyentityextractor.java:56) @ org.jboss.resteasy.client.core.clientinvoker.invoke(clientinvoker.java:102) @ org.jboss.resteasy.client.core.clientproxy.invoke(clientproxy.java:72) @ $proxy20.lookupbyid(unknown source) @ net.odyssi.mms.appstore.apple.test.appleappstorelookupclienttest.testlookupbyid(appleappstorelookupclienttest.java:111) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:45) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:15) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:42) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:20) @ org.junit.internal.runners.statements.runbefores.evaluate(runbefores.java:28) @ org.junit.runners.parentrunner.runleaf(parentrunner.java:263) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:68) @ org.junit.runners.blockjunit4classrunner.runchild(blockjunit4classrunner.java:47) @ org.junit.runners.parentrunner$3.run(parentrunner.java:231) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:60) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:229) @ org.junit.runners.parentrunner.access$000(parentrunner.java:50) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:222) @ org.junit.runners.parentrunner.run(parentrunner.java:300) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:50) @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:467) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:683) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:390) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:197) what causing throw exception? haven't seen error in past, , haven't had success in locating solution problem. can give appreciated!!
finally found answer this! upgraded resteasy libraries 2.3.5, , removed jettison provider jars in favor of jackson. solved of issues.
Comments
Post a Comment