cancel
Showing results for 
Search instead for 
Did you mean: 

Error in Complete Task using Rest

sarkar92
Champ in-the-making
Champ in-the-making
I am using Activiti in Action's Example to complete vactaion request task using rest.

my complete task code is
public static String completeHandleVacationRequestTask(String taskId)
         throws Exception {
      String uri = REST_URI + "/task/" + taskId + "/complete";
      Representation response = getClientResource(uri).put(
            "{vacationApproved:true}", MediaType.APPLICATION_JSON);
      JSONObject object = new JSONObject(response.getText());
      logger.info("Completed task " + taskId + " " + object.getString("success"));
      return object.getString("success");
   }

but it gives an error and unable to copmlete the task….
the error log

INFO: 2012-12-07   15:26:35   127.0.0.1   kermit   127.0.0.1   9090   GET   /activiti-rest/service/tasks   assignee=kermit   200   -   -   124   http://localhost:9090   Restlet-Framework/2.0snapshot   -
Dec 07, 2012 3:26:35 PM org.restlet.resource.UniformResource doCatch
WARNING: Exception or error caught in resource
org.activiti.engine.ActivitiException: Did not receive the operation parameters
   at org.activiti.rest.api.task.TaskOperationResource.executeTaskOperation(TaskOperationResource.java:65)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:601)
   at org.restlet.resource.ServerResource.doHandle(ServerResource.java:446)
   at org.restlet.resource.ServerResource.put(ServerResource.java:1170)
   at org.restlet.resource.ServerResource.doHandle(ServerResource.java:521)
   at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:587)
   at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:299)
   at org.restlet.resource.ServerResource.handle(ServerResource.java:846)
   at org.restlet.resource.Finder.handle(Finder.java:510)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Router.doHandle(Router.java:497)
   at org.restlet.routing.Router.handle(Router.java:737)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
   at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72)
   at org.restlet.Application.handle(Application.java:388)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Router.doHandle(Router.java:497)
   at org.restlet.routing.Router.handle(Router.java:737)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.routing.Router.doHandle(Router.java:497)
   at org.restlet.routing.Router.handle(Router.java:737)
   at org.restlet.routing.Filter.doHandle(Filter.java:156)
   at org.restlet.routing.Filter.handle(Filter.java:203)
   at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
   at org.restlet.Component.handle(Component.java:387)
   at org.restlet.Server.handle(Server.java:488)
   at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71)
   at org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:150)
   at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1037)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
   at java.lang.Thread.run(Thread.java:722)
Caused by: org.codehaus.jackson.JsonParseException: Unexpected character ('n' (code 110)): was expecting double-quote to start field name
at [Source: java.io.StringReader@158fa79; line: 1, column: 3]
   at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:929)
   at org.codehaus.jackson.impl.JsonParserBase._reportError(JsonParserBase.java:632)
   at org.codehaus.jackson.impl.JsonParserBase._reportUnexpectedChar(JsonParserBase.java:565)
   at org.codehaus.jackson.impl.ReaderBasedParser._handleUnusualFieldName(ReaderBasedParser.java:342)
   at org.codehaus.jackson.impl.ReaderBasedParser._parseFieldName(ReaderBasedParser.java:235)
   at org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:125)
   at org.codehaus.jackson.map.deser.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:163)
   at org.codehaus.jackson.map.deser.BaseNodeDeserializer.deserializeAny(JsonNodeDeserializer.java:190)
   at org.codehaus.jackson.map.deser.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:52)
   at org.codehaus.jackson.map.deser.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:13)
   at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1282)
   at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:899)
   at org.codehaus.jackson.map.ObjectMapper.readTree(ObjectMapper.java:675)
   at org.activiti.rest.api.task.TaskOperationResource.executeTaskOperation(TaskOperationResource.java:42)
   … 58 more

please help …..
3 REPLIES 3

trademak
Star Contributor
Star Contributor
Hi,

It would be better if you used a JSON library to create the JSON for you because this is not valid:

{vacationApproved:true}
This should be:

{"vacationApproved":true}
Best regards,

sarkar92
Champ in-the-making
Champ in-the-making
can you please help me to create the JSON using JSON library??

jbarrez
Star Contributor
Star Contributor
That's pretty standard Java. My favourite framework is http://jackson.codehaus.org/, but many (many!) others exist.
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.