【问题标题】:How to properly consume JAX-RS (RESTEasy) with Pentaho(kettle)如何使用 Pentaho(kettle) 正确使用 JAX-RS (RESTEasy)
【发布时间】:2016-06-23 10:25:56
【问题描述】:

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

一段代码:

@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"}]}

我的服务没有认证,网址正确

我能做什么,或者有其他方法可以更有效地做同样的事情?

【问题讨论】:

  • 可以修改Pentaho的请求数据吗?我的意思是,改变 Pentaho 发送的 JSON。
  • 是的,但是我没有找到确切告诉pentaho如何编写json的方法,只需编辑一些参数

标签: web-services rest pentaho resteasy kettle


【解决方案1】:

我找到了解决问题的“棘手”方法:

在 pentaho 中:

将表格数据传递给 JSON 并将其作为 TEXT PLAIN 发送

在役:

以纯文本形式接收请求,然后将字符串解析为 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);
            }

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 2013-11-21
    • 2014-02-03
    • 2013-01-13
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多