如何使用 Pentaho(kettle) 正确使用 JAX-RS (RESTEasy)

How to properly consume JAX-RS (RESTEasy) with Pentaho(kettle)

我想通过 HTTP POST REQUEST 向我的 API 服务发送数据(table 员工),并将其保存到数据库。

一段代码:

@POST
@Consumes({ "application/json" })
@Produces(MediaType.TEXT_PLAIN)
@Path("/full/json")
public Response recieveDataFJson(Employee employee) {
    System.out.println("Recieved employee with name: " + employee.getName());
    return Response.ok("works").build();
}

我正在使用 JSON 输出项来准备要发送到服务的数据,但我认为问题在于 Pentaho 正在以以下格式发送 JSON:

{"Employee":[{"name":"mike"}]}

但服务正在等待:

{"name":"mike"}

我试图删除初始标签,但发送的项目是:

{"":[{"name":"mike"}]}

我的服务没有验证,URL是正确的

我能做什么,或者有其他更有效的方法吗?

我找到了 "tricky" 解决问题的方法:

在 pentaho 中:

将 table 数据传递给 JSON 并将其作为普通文本发送

在役:

以 TEXT PLAIN 形式接收请求,然后将 String 解析为 JSON 并将 JSON 解析为 JAVA 对象:

JSONObject jsnobject = new JSONObject(recievedString);
            ObjectMapper mapper = new ObjectMapper();
            SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss.SSS");
            mapper.setDateFormat(format);
            JSONArray jsonArray = jsnobject.getJSONArray("Employee");
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                Employee employee = mapper.readValue(jsonObject.toString(),
                        Employee.class); = new NegocioBean();
                    negocioBean.aplicarReglas(factOrdenesTransporte);
            }