Unable to deserialize object when starting a new case of a process

Hi everybody.
I made this step:

  1. I defined a BDM com.xyz.Class with only one attribute (a String, mandatory)
  2. I defined a process variable “var” of type com.xyz.Class (the class defined in BDM)
  3. I made a (VERY) simple process with one simple task which should show the process variable instantiated when starting a new case.
    I realized a simple webapp which exposes a REST service for starting a new case, using Bonita engine API. For the code, I look at these examples https://documentation.bonitasoft.com/bonita/7.8/manage-a-process and in particular at the paragraph “Set variables of any type and start a process instance”

Whenever I try to start a new case, always I get this error:

message=Unable to deserialize object 
   <object-stream>
      <object-array>
        <long>6223957638235021791</long>
        <map>
          <entry>
            <string>var</string>
              <com.xyz.Class>
                <id>1</id>
              </com.xyz.Class>
          </entry>
        </map>
      </object-array>
    </object-stream>

with root cause
com.thoughtworks.xstream.mapper.CannotResolveClassException: com.xyz.Class

Am I wrong? What’s the problem? Anyone can help me, providing an example of a process with Object as process variable?
If I replace my com.xyz.Class with a text process variable, the new case starts wthout any problem.

Thank you in advance

1 Like

Hi,

Business objects are not supported as process variable and must be used as business variables only.
Check the documentation reference for more information.

HTH
Romain

I tried to sart a new instance using REST API and I got this message

{
    "exception": "class org.bonitasoft.web.toolkit.client.common.exception.api.APIException",
    "message": "com.xyz.Class not found. Only jdk types are supported",
    "api": "bpm",
    "resource": "case"
}

Maybe is it possible create only process variables which are primitive types?

I face the same problem, please help