誰かが私に次の問題を助けてくれるかどうかは分かります。 私はPrintingBean
とそのすべてを記入するジャスパー報告書を持っています。request.getSession()is null
if (bean.getPrintingDataList() != null && !bean.getPrintingDataList().isEmpty())
それは新しいセッションを作る(私は、GUI上でそれを見ることができないようですが、そのすべて、そうです:私は私のアプリがでnullポインタ例外をスローします(アプレットを開く)印刷プレビュー]ボタンをクリックした瞬間良い)。私のmanageBeanはSessionScopedです。これは私の全面的な方法です:
private void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
JasperPrint jasperPrint = null;
try {
PrintingBean bean = (PrintingBean) request.getSession().getAttribute("printMB");
if (bean.getPrintingDataList() != null && !bean.getPrintingDataList().isEmpty()) {
jasperPrint = printManager.print(bean.getPrintingDataList());
}
} catch (Exception ex) {
Logger.getLogger(JasperPrintServlet.class.getName()).log(Level.SEVERE, null, ex);
}
if (jasperPrint != null) {
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
}
}
これは不可能です。与えられた行に 'null'を返し、' bean'にアクセスした 'if'ブロックで' NullPointerException'が実際に*スローされますか?それははるかに理にかなって、答えられる*ことができます。 – BalusC
request.getSession()には属性(サイズは0)がなく、.getAttribute( "printMB")がまったく存在しないので、ifブロックでNPEをスローします。なぜ、どのようにこの問題を処理するか考えていますか?あなたの時間に感謝します – falconiki