Cannot start a process instance using Rest

I started using Camunda.
Iam using rest api. starting process instance gave the following status code and response
please help.
url:
http://NAZIM_PC:8080/engine-rest/process-definition/key/testCamunda/start
request: {“variables”: {“processDesc”:{“value” : “start loan
approval”, “type”: “String”},“tranId”:{“value” : “499”, “type”: “String”}}}
status code : 500
the response:

Apache Tomcat/8.0.24 - Error

reportH1
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s
ize:22px;} H2
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s
ize:16px;} H3
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-s
ize:14px;} BODY
{font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px
;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color:
#525D76; border: none;}

HTTP Status 500 -
java.lang.NullPointerException

type
Exception report

message
java.lang.NullPointerException

description The server
encountered an internal error that prevented it from fulfilling this
request.

exception

org.jboss.resteasy.spi.UnhandledExce
ption:
java.lang.NullPointerException
org.jboss.resteasy.core.SynchronousDispatcher.ha
ndleApplicationException(SynchronousDispatcher.java:365)
org.jboss.resteasy.cor
e.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233)
org.jbo
ss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatc
her.java:209)
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(Synchro
nousDispatcher.java:557)
org.jboss.resteasy.core.SynchronousDispatcher.invoke(S
ynchronousDispatcher.java:524)
org.jboss.resteasy.core.SynchronousDispatcher.in
vokePropagateNotFound(SynchronousDispatcher.java:169)
org.jboss.resteasy.plugin
s.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.j
ava:212)
org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(Fi
lterDispatcher.java:59)
org.camunda.bpm.engine.rest.filter.CacheControlFilter.d
oFilter(CacheControlFilter.java:41)

root
cause

java.lang.NullPointerException
org.camunda.bpm.engine.rest.su
b.repository.impl.ProcessDefinitionResourceImpl.startProcessInstance(ProcessDefi
nitionResourceImpl.java:95)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
va:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:43)
java.lang.reflect.Method.invoke(Method.java:601)
org.jboss.reste
asy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
org.jboss.reste
asy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
org.jboss.reste
asy.core.ResourceMethod.invoke(ResourceMethod.java:222)
org.jboss.resteasy.core
.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:159)
org.jboss.reste
asy.core.ResourceLocator.invoke(ResourceLocator.java:107)
org.jboss.resteasy.co
re.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154)
org.jboss.res
teasy.core.ResourceLocator.invoke(ResourceLocator.java:92)
org.jboss.resteasy.c
ore.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
org.jboss
.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
org
.jboss.resteasy.core.SynchronousDispatcher.invokePropagateNotFound(SynchronousDi
spatcher.java:169)
org.jboss.resteasy.plugins.server.servlet.ServletContainerDi
spatcher.service(ServletContainerDispatcher.java:212)
org.jboss.resteasy.plugin
s.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:59)
org.camund
a.bpm.engine.rest.filter.CacheControlFilter.doFilter(CacheControlFilter.java:41)

note The full stack trace of the root cause is available in
the Apache Tomcat/8.0.24 logs.


Apache
Tomcat/8.0.24

=========================
error in the log file :
28-May-2016 13:16:02.041 SEVERE [http-nio-8080-exec-8] org.jboss.resteasy.logging.impl.Slf4jLogger.error Failed executing POST /process-definition/key/testCamunda/start
org.jboss.resteasy.spi.ReaderException: java.net.SocketTimeoutException
at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:202)
at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:136)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:159)
at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:257)
at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:222)
at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:159)
at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:107)
at org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:154)
at org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:92)
at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
at org.jboss.resteasy.core.SynchronousDispatcher.invokePropagateNotFound(SynchronousDispatcher.java:169)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:212)
at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:59)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.camunda.bpm.engine.rest.filter.CacheControlFilter.doFilter(CacheControlFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.SocketTimeoutException
at org.apache.tomcat.util.net.NioBlockingSelector.read(NioBlockingSelector.java:202)
at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:251)
at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:232)
at org.apache.coyote.http11.InternalNioInputBuffer.fill(InternalNioInputBuffer.java:133)
at org.apache.coyote.http11.InternalNioInputBuffer$SocketInputBuffer.doRead(InternalNioInputBuffer.java:177)
at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:110)
at org.apache.coyote.http11.AbstractInputBuffer.doRead(AbstractInputBuffer.java:416)
at org.apache.coyote.Request.doRead(Request.java:469)
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:342)
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:395)
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:367)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:190)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.ensureLoaded(ByteSourceJsonBootstrapper.java:489)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.detectEncoding(ByteSourceJsonBootstrapper.java:126)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.constructParser(ByteSourceJsonBootstrapper.java:215)
at com.fasterxml.jackson.core.JsonFactory._createParser(JsonFactory.java:1191)
at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:753)
at com.fasterxml.jackson.jaxrs.base.ProviderBase._createParser(ProviderBase.java:822)
at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:780)
at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:63)
at org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108)
at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:169)
… 34 more

problem solved.
:smile:
:smile:

Same problem here. How did you solved ?

Now i know why @Nazim_Fathi solved the problem by smiling.

The NPE is happening if you are request the rest api without the JSON payload.

In my opinion the log could provide a lot of more information to find that out.
But maybe only @Nazim_Fathi and I came to the idea for requesting without proper defined payload.

2 Likes

This is actually a relatively common mistake - might be an idea to add to the docs that you need to include a payload of at least “{}”

1 Like

Empty body works as long as at least header Content-Type is set to application/json