2017-08-11 16 views
0

これは別の問題を隠している可能性がありますが、わかりません - 私はAWSコンソールを使用してテストしようとしている小さなラムダ関数を持っています。JavaおよびAWSラムダ関数のJSONエラーを解析します。

public class ApplicationRunner implements RequestHandler<String, String> { 

    static final Logger logger = Logger.getLogger(ApplicationRunner.class); 

    @Override 
    public String handleRequest(String input, Context context) { 
    //code 

} 
} 

私が受けていますエラーは次のとおりです。

{ 
    "errorMessage": "An error occurred during JSON parsing", 
    "errorType": "java.lang.RuntimeException", 
    "stackTrace": [], 
    "cause": { 
    "errorMessage": "com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: [email protected]; line: 1, column: 1]", 
    "errorType": "java.io.UncheckedIOException", 
    "stackTrace": [], 
    "cause": { 
     "errorMessage": "Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: [email protected]; line: 1, column: 1]", 
     "errorType": "com.fasterxml.jackson.databind.JsonMappingException", 
     "stackTrace": [ 
     "com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)", 
     "com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:857)", 
     "com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:62)", 
     "com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)", 
     "com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1511)", 
     "com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1102)" 
     ] 
    } 
    } 
} 

誰でも助けることができますか?

ありがとうございました。

+0

あなたのコードは、私のクリスタルボールでやや曇っています。私はそれを正しく読むことができません。代わりにここに投稿してもよろしいですか? – Michael

+0

@マイケル、あなたの希望を認めてください。 – null

+0

このラムダ(イベントデータ)に入力を投稿できますか? – jarmod

答えて

1

あなたが持っている:

  • rawData:データ
  • jsonData変換テンプレートを適用した後:
  • rewrittenDataあなたのラムダ関数に送信されるデータrewriteData
のJSON-解析の結果

署名handleRequest(String input, Context context)は、お客様のinputjsonDataこのJSONオブジェクトは文字列です。あなたはあなたのラムダにjson-stringを渡しますか? 99.99%は、オブジェクトを送信していないので、期待どおりのエラーメッセージが表示されます。何をしたい

は、クラスRequestStreamHandlerを拡張し、署名で関数をオーバーライドすることです:今

@Override 
public void handleRequest(final InputStream input, final OutputStream output, final Context context) 

inputは、最も可能性の高いrawDataと同じである、あなたのrewrittenDataです。

+0

よろしくお願いします。 :Dとても役に立ちました – null

関連する問題