2017-09-19 14 views
1

と@RequestParamとしてマップ を挿入する方法は、まず英語には申し訳ありませんが、これは主な言語ではありません。 まず、郵便番号

レストウェブサービスの@RequestParamとしてマップを受け取った後、いくつかのクエリを実行する必要があります。

私は郵便配達してWebサービスを呼び出すためにしようとしている、とここでは完全なPOSTリクエスト http://localhost:8080/CDRestApi/rest/cd/esibizione/getIdUdFromIstanzaMetadatoByMap/5/map?25=ALAN&26=IANESELLI

は、これは私のWSコードです:

@RequestMapping(value = { "/getIdUdFromIstanzaMetadatoByMap/{id}/map" }, method = RequestMethod.POST, produces = { 
     MediaType.APPLICATION_JSON_VALUE }) 
@ResponseBody 
public String selectIstanzaMetadato(@PathVariable Long id, 
            @RequestParam (value="map", required=true) Map<Integer,String> mapQuery) { 

    Integer key = 25; 
    System.out.println(mapQuery.get(key)); 
    return mapQuery.get(key).toString(); 
} 

そして、これは郵便配達の答えです:

{ 
"timestamp": 1505834218902, 
"status": 500, 
"error": "Internal Server Error", 
"exception": "java.lang.NullPointerException", 
"message": "No message available", 
"path": "/CDRestApi/rest/cd/esibizione/getIdUdFromIstanzaMetadatoByMap/5/map" 

}

S ystem.outプリントは次のとおりです。

17:16:58,891 INFO [stdout] (default task-4) null 

それは正しく私はすでに、これらの記事を見てきました

を付加価値化するではないが、彼らは私には有用ではありませんでしたので、私は、mapQueryオブジェクトに値がないと仮定します Map<String, String> as @RequestParam in Spring MVC and Spring MVC + RequestParam as Map + get URL array parameters not working

正しいPostman POSTリクエストが紛れていますか?それともWebサービス自体の問題ですか?

+0

どのようなエラーが表示されますか? – Plog

+0

質問に追加します – Fjordo

+0

'' 'と' 'String key =" 25 ";' 'Integer key = 25;'の代わりに '' Map < – Plog

答えて

0

マップを取得してマップに変換しました。

Map<Integer, String> mappaQuery = mapQuery.entrySet().stream().collect(Collectors.toMap(e -> Integer.parseInt(e.getKey()), Map.Entry::getValue)); 

効率的ではありませんが、Postmanコールのテスト目的で機能しました。 WSの実際の呼び出しで、私は適切なMapオブジェクトを渡すことができます。