如何使用 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);
}
我想通过 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);
}