2016-06-23 9 views
1

HTTP POST REQUESTを使用してデータ(テーブルの従業員)をAPIサービスに送信し、データベースに保存します。コードのPentaho(ケトル)でJAX-RS(RESTEasy)を正しく使用する方法

作品:

@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を送信しているということだと思う:

私は、最初のタグが、トンを削除しようとしました

{"name":"mike"} 

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

が、サービスはただ待っています鶏は、送信アイテムでした:

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

私のサービスは認証を持っていない、URLが正しい

私は何を、またはより効率的に同じことを行う別の方法があることができますか?

+0

Pentahoのリクエストデータを変更できますか?つまり、Pentahoが送信しているJSONを変更します。 –

+0

はい、私は正確にpentahoにjsonを書く方法を教えて、ちょうどいくつかのパラメータを編集する方法を見つけられませんでした – MikeOx

答えて

0

私は私の問題を解決するための "トリッキー" の方法が見つかりました:JSONに

パステーブルのデータを、サービス内のテキストPLAIN

として送信:Pentahoのでは

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); 
      } 
関連する問題