Alfresco Freemarker restApi - Json error

cancel
Showing results for 
Search instead for 
Did you mean: 
serzarat
Member II

Alfresco Freemarker restApi - Json error

Buenos días,
Probando a utilizar  la freemarker restAPI para sobrepasar problemas como el limite de 1000 elementos en mi versión de alfresco (v3), en ocasiones al realizar el parseo del objeto json que obtengo como respuesta, obtengo el siguiente error:

"name": "{    "code" : "500",
     "message": "10210107 Wrapped Exception (with status template): 10211551 Error durante el procesamiento de la plantilla 'Expression comisionesrow is undefined on line 7, column 44 in abc\/queryresults.get.json.ftl.'. Por favor, contacte con el administrador del sistema."
}
   at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:505)
   at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1271)
   at net.sf.json.JSONObject.fromObject(JSONObject.java:155)
   at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:347)
   at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1132)
   at net.sf.json.JSONArray.fromObject(JSONArray.java:125)
   at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:350)
   at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1180)
   at net.sf.json.JSONObject._fromString(JSONObject.java:1373)
   at net.sf.json.JSONObject.fromObject(JSONObject.java:161)
   at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:139)
   at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:103)
   at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:84)
   at com.galeonsoftware.tph.firmadigital.util.AlfrescoDocumentoConsumer.lanzaQueryWS(AlfrescoDocumentoConsumer.java:1420)
   at com.galeonsoftware.tph.firmadigital.util.AlfrescoDocumentoConsumer.lanzaBusquedaWS(AlfrescoDocumentoConsumer.java:1217)
   at com.galeonsoftware.tph.firmadigital.action.expedientes.BusquedaExpedientesAction.executeAction(BusquedaExpedientesAction.java:62)
   at com.galeonsoftware.tph.firmadigital.AdminBaseAction.execute(AdminBaseAction.java:40)
   at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
   at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at com.galeonsoftware.tph.firmadigital.util.LogFilter.doFilter(LogFilter.java:54)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
   at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
   at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)



Investigando parece que la plantilla (freemarker template) que nos resulta en la respuesta no ha sido generada correctamente….
Alguien sabe si se debe modificar la plantilla de la ftl  o debería modificar el código?

el json resultado lo obtengo de sete modo:

      InputStream inputStream = connection.getInputStream();

      String jsonTxt = convertStreamToString(inputStream);

                json = (JSONObject) JSONSerializer.toJSON(jsonTxt);

El error viene generado en esta linea:


                JSONArray queryRows = json.getJSONArray("data");

al intentar transformar en array un elemento que viene mal formateado :
"name": "{    "code" : "500",
     "message": "10210107 Wrapped Exception

cuando la plantilla espera otros elementos…

Gracias,




1 Reply
angelborroy
Alfresco Employee

Re: Alfresco Freemarker restApi - Json error

¿Qué controlador acompaña a la plantilla FTL abc\/queryresults.get.json.ftl?
Hyland Developer Evangelist