Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取';剩余的';jsonb没有在我的第一个对象上使用的数据?_Java_Jax Rs_Jsonb - Fatal编程技术网

Java 获取';剩余的';jsonb没有在我的第一个对象上使用的数据?

Java 获取';剩余的';jsonb没有在我的第一个对象上使用的数据?,java,jax-rs,jsonb,Java,Jax Rs,Jsonb,我正在开发的REST api中有以下方法: @POST @Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8") @Produces (MediaType.APPLICATION_JSON + ";charset=utf-8") public RunInstance startRun ( RunInstance runInstance ) RunInstance对象的工作方式类似于各种属性的持有者,在启动长时间运行的操作之前,这些属性可

我正在开发的REST api中有以下方法:

@POST
@Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8")
@Produces (MediaType.APPLICATION_JSON + ";charset=utf-8")
public RunInstance startRun ( RunInstance runInstance ) 
RunInstance对象的工作方式类似于各种属性的持有者,在启动长时间运行的操作之前,这些属性可能是必需的,也可能不是必需的。其某些字段稍后将用作反馈,当客户端需要操作状态更新时,将返回此对象:

public class RunInstance {
    private int ruleId; 
    @JsonbTransient private String ruleSubmitResult; 
    private String status; 
    private String errorMessage; 
    private String action;
    private int runId; 
    private java.time.LocalDateTime startDt ; 
    private java.time.LocalDateTime endDt ; 
    private int inputRows;
    private int currentLoop;
    ....
现在,将执行的实际操作将根据ruleId而有所不同。每个操作都有不同的要求,可以接受不同的参数

如果我将我的方法签名保留为

public RunInstance startRun ( RunInstance runInstance )
它允许我自动填充此对象。但是,客户机还将传递一些与每个特定操作相关的参数/json数据,这些参数/json数据将根据操作类型而有所不同

我想做的不是将方法签名更改为

@POST
    @Consumes (MediaType.APPLICATION_JSON+ ";charset=utf-8")
    @Produces (MediaType.APPLICATION_JSON + ";charset=utf-8")
    public RunInstance startRun ( Map<String,String> bodyParams) 
@POST
@使用(MediaType.APPLICATION_JSON+“charset=utf-8”)
@产生(MediaType.APPLICATION_JSON+“charset=utf-8”)
公共运行实例startRun(映射bodyParams)
然后必须手动提取与填充RunInstance对象相关的参数,前提是我可以自动填充它,同时还可以访问其余的参数(未用作此对象的值)

但是,根据该帖子,不可能发布两个对象:

有人知道有什么方法可以实现这样的目标吗? i、 e.喜欢

public RunInstance startRun ( RunInstance runInstance , Map<String,String> remainingbodyParams)
public RunInstance startRun(RunInstance RunInstance,Map remainingbodyParams)

将映射作为RunInstance的属性如何?我知道杰克逊能做到。但是我不知道JSONB。我尝试将映射作为一个属性,尽管它没有像我描述的那样工作,但它很好地解决了这个问题:客户端可以发送一个命名json对象,该对象与映射的名称相关联,包含传递给映射的名称-值对集。然后,我可以使用这些作为应用程序所需的参数。