将 json 剩余响应转换为数据对象 jBPM(无法将响应转换为对象)
Convert json rest response to Data Object jBPM (Unable to transform respose to object)
我正在处理 jBPM 7.22。0.Final。
我使用服务任务 REST 从这个 api https://reqres.in/api/users/1
获得响应
{
"data": {
"id": 1,
"email": "george.bluth@reqres.in",
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}
}
我想将此响应放入一个对象中,所以我创建了这个 class(或 jBPM 中调用的数据对象):
package com.bechirspace.testproject;
/**
* This class was automatically generated by the data modeler tool.
*/
public class data implements java.io.Serializable {
static final long serialVersionUID = 1L;
private Integer id;
private java.lang.String email;
private java.lang.String first_name;
private java.lang.String last_name;
private java.lang.String avatar;
public data() {
}
public java.lang.String getEmail() {
return this.email;
}
public void setEmail(java.lang.String email) {
this.email = email;
}
public java.lang.String getFirst_name() {
return this.first_name;
}
public void setFirst_name(java.lang.String first_name) {
this.first_name = first_name;
}
public java.lang.String getLast_name() {
return this.last_name;
}
public void setLast_name(java.lang.String last_name) {
this.last_name = last_name;
}
public java.lang.String getAvatar() {
return this.avatar;
}
public void setAvatar(java.lang.String avatar) {
this.avatar = avatar;
}
public java.lang.Integer getId() {
return this.id;
}
public void setId(java.lang.Integer id) {
this.id = id;
}
public data(java.lang.Integer id, java.lang.String email,
java.lang.String first_name, java.lang.String last_name,
java.lang.String avatar) {
this.id = id;
this.email = email;
this.first_name = first_name;
this.last_name = last_name;
this.avatar = avatar;
}
}
我在 jBPM 中创建了一个名为 res
的全局变量,它具有我想存储响应的数据对象的类型。所以在我的 REST 服务任务的 'Assignments' 中,我有截图中的内容。
如您所见,我想将结果存储到 Data
类型的 res
变量(我创建的)中,然后我将我想要的 class 类型放入 ResultClass在 (com.bechirspace.testproject.data) 中转换。
但它不起作用,我可以成功构建和部署,但是当我想启动一个 "New Process Instance" 时它显示此消息 Error
Unable to complete your request. The following exception occurred:
"Unable to create response: [src.main.resources.testProcess:1,434 - REST:7]
-- java.lang.RuntimeException: Unable to transform respose to object".
PS:如果我将它分配给一个字符串变量,我可以打印我的响应,所以问题在于转换响应,而不是获取它。
你可能会说这是一个重复的问题(Map jBPM REST response to Custom Object),但我没有找到明确的答案,有人可以帮忙吗?
好吧,我创建了另一个名为 Person 的数据对象,其属性为 "data",并将结果和结果类更改为这个新的 class。我必须遵循与我的 json 响应相同的结构,它是一个对象,具有一个名为 data 的对象属性,该属性具有其余属性。
package com.bechirspace.testproject;
/**
* This class was automatically generated by the data modeler tool.
*/
public class Person implements java.io.Serializable {
static final long serialVersionUID = 1L;
private com.bechirspace.testproject.data data;
public Person() {
}
public com.bechirspace.testproject.data getData() {
return this.data;
}
public void setData(com.bechirspace.testproject.data data) {
this.data = data;
}
public Person(com.bechirspace.testproject.Data data) {
this.data = data;
}
}
我正在处理 jBPM 7.22。0.Final。
我使用服务任务 REST 从这个 api https://reqres.in/api/users/1
获得响应{
"data": {
"id": 1,
"email": "george.bluth@reqres.in",
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}
}
我想将此响应放入一个对象中,所以我创建了这个 class(或 jBPM 中调用的数据对象):
package com.bechirspace.testproject;
/**
* This class was automatically generated by the data modeler tool.
*/
public class data implements java.io.Serializable {
static final long serialVersionUID = 1L;
private Integer id;
private java.lang.String email;
private java.lang.String first_name;
private java.lang.String last_name;
private java.lang.String avatar;
public data() {
}
public java.lang.String getEmail() {
return this.email;
}
public void setEmail(java.lang.String email) {
this.email = email;
}
public java.lang.String getFirst_name() {
return this.first_name;
}
public void setFirst_name(java.lang.String first_name) {
this.first_name = first_name;
}
public java.lang.String getLast_name() {
return this.last_name;
}
public void setLast_name(java.lang.String last_name) {
this.last_name = last_name;
}
public java.lang.String getAvatar() {
return this.avatar;
}
public void setAvatar(java.lang.String avatar) {
this.avatar = avatar;
}
public java.lang.Integer getId() {
return this.id;
}
public void setId(java.lang.Integer id) {
this.id = id;
}
public data(java.lang.Integer id, java.lang.String email,
java.lang.String first_name, java.lang.String last_name,
java.lang.String avatar) {
this.id = id;
this.email = email;
this.first_name = first_name;
this.last_name = last_name;
this.avatar = avatar;
}
}
我在 jBPM 中创建了一个名为 res
的全局变量,它具有我想存储响应的数据对象的类型。所以在我的 REST 服务任务的 'Assignments' 中,我有截图中的内容。
如您所见,我想将结果存储到 Data
类型的 res
变量(我创建的)中,然后我将我想要的 class 类型放入 ResultClass在 (com.bechirspace.testproject.data) 中转换。
但它不起作用,我可以成功构建和部署,但是当我想启动一个 "New Process Instance" 时它显示此消息 Error
Unable to complete your request. The following exception occurred:
"Unable to create response: [src.main.resources.testProcess:1,434 - REST:7]
-- java.lang.RuntimeException: Unable to transform respose to object".
PS:如果我将它分配给一个字符串变量,我可以打印我的响应,所以问题在于转换响应,而不是获取它。
你可能会说这是一个重复的问题(Map jBPM REST response to Custom Object),但我没有找到明确的答案,有人可以帮忙吗?
好吧,我创建了另一个名为 Person 的数据对象,其属性为 "data",并将结果和结果类更改为这个新的 class。我必须遵循与我的 json 响应相同的结构,它是一个对象,具有一个名为 data 的对象属性,该属性具有其余属性。
package com.bechirspace.testproject;
/**
* This class was automatically generated by the data modeler tool.
*/
public class Person implements java.io.Serializable {
static final long serialVersionUID = 1L;
private com.bechirspace.testproject.data data;
public Person() {
}
public com.bechirspace.testproject.data getData() {
return this.data;
}
public void setData(com.bechirspace.testproject.data data) {
this.data = data;
}
public Person(com.bechirspace.testproject.Data data) {
this.data = data;
}
}