0

REST 経由で JSON オブジェクトを取得するメソッドを提供するクラスを作成しました。この JSON オブジェクトは、LinkedHashMap として逆シリアル化されます。方法は次のとおりです。

 @Override
public LinkedHashMap refreshStatus(String metricType, String metricPeriod) {
    ObjectMapper mapper = new ObjectMapper();
    LinkedHashMap<String,String> map = null;

     try {
        map = mapper.readValue(new File("http://localhost:8081/Metrics/Stats/JSONP/ReceiveData/"+metricType+"/"+metricPeriod+"/?callback="), LinkedHashMap.class);


    } catch (JsonParseException e) {
        e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
}
    return map;
}

ブラウザーに特定のパラメーターを含む URL を入力すると、つまり

http://localhost:8081/Metrics/Stats/JSONP/ReceiveData/Totals/All/?callback=

適切な JSON オブジェクトを取得します。

{"Boxes":"8","Contracts":"23","Updates":"1","Deactivations":"4","ActiveBoxes":"33","InactiveBoxes":"1","PendingInstallationsContracts":"70","Alerts":"626","PercentsBoxInstalled":"100.0%","Miles":"0"}

ただし、アプリケーションを実行してメソッドが呼び出されると、FileNotFoodException が発生します。

java.io.FileNotFoundException: http:/localhost:8081/Metrics/Stats/JSONP/ReceiveData/Totals/All/?callback= (No such file or directory)

問題がどこにあるのか誰にもわかりませんか?前もって感謝します!

4

1 に答える 1

2

このファイルは実際にはあなたのコンピュータ上では見つかりません. ローカルファイル システム内の実際のファイルに対応するファイル オブジェクトを作成し、ファイル システム パスの代わりに URL を引数として指定しようとしています。

実際に HTTP GET を実行したい、つまり次のようなことをしたいとします。

urlString = "http://localhost:8081/Metrics/Stats/JSONP/ReceiveData/Totals/All/?callback=";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
map = mapper.readValueconn.getInputStream(); 
于 2013-09-30T15:05:54.497 に答える