この状況に対処する方法と、これに対する推奨事項を知りたいです。
JSP でヌル ポインター例外が発生しています。
String csvDataIn = new String ((String)request.getAttribute("csvString"));
これは、DB へのクエリを処理して csvString を取得するために、春にコントローラーを作成したためです。失敗するクエリを作成するまで、すべてが正常に機能しています。
したがって、コントローラーでは次のようになります。
...
JsonNode json = dataRepository.getDataAsJson(dataNode);
csvString = getCSVfromJsonNode(json);
model.addAttribute("csvString", csvString);
} catch (Exception e) {
Logger.log("CSV controller failed", _moduleClass, e);
}
return "exportCSV";
}
したがって、関数 getDataAsJson() が失敗しているため、変数 json は決して埋められません。したがって、これは例外をスローしています。そして、exportCSV.jsp に戻りますが、モデル内の属性 csvString を返しません。
したがって、jsp に戻ると、nullpointer 例外がスローされます。
私の質問は次のとおりです。a- JSP でこの例外をどのようにキャッチしますか? b- JSP で例外をキャッチするよりも良い解決策はあると思いますか? つまり、これのベストプラクティスは何でしょうか。
前もって感謝します。
回答ありがとうございます。それらは非常に役立ちます。この問題を処理するために、次の変更を行いました。
...
JsonNode json = dataRepository.getDataAsJson(dataNode);
model.addAttribute("csvString", csvString);
} catch (Exception e) {
Logger.log("CSV controller failed", _moduleClass, e);
}
return "exportCSV";
csvString = getCSVfromJsonNode(json);
}
csvString は以前に作成された Bean であり、空であるため、これにより Null 文字列を送信する問題が解決されます。
ここで取得している例外は、 javax.xml.ws.webserviceexception could not send message です (コントローラーでこれを処理するより良い方法を知っていますか?)
念のため、jsp側でもこれを行いました。
String csvDataIn = (String)request.getAttribute("csvString");
//This should never happen, but we check anyway.
if (csvDataIn != null){
...
}
したがって、私が残るかもしれない唯一の疑問は、コントローラーで javax.xml.ws.webserviceexception を処理するより良い方法を知っていますか?
再度、感謝します