ireportでレポートを作った経験
3109 ワード
20151127:
夜に本の電子書籍をおりて、ireportは詳しく解いて、彼の言うことによって、公式サイトはjaspereport-libをダウンロードした後に、diskディレクトリの下でjarをすべてlibの下にコピーして、頼りにして、ひっきりなしに間違いを報告して、間違いによって順番にireportの下で対応するjarを見つけて、commons-logging-1.1.jar,commons-collections-3.2.1.jar,commons-digester-2.1.jar,groovy-all-2.0.1.jar,iText-2.1.7.js2.jar、jarパッケージが何をしているのか分かりませんが、diskのjasperreports-5.6.0を加えます.jar,jasperreports-applet-5.6.0.jar,jasperreports-fonts-5.6.0.jar,jasperreports-javaflow-5.6.0.jar,commons-beanutils-1.8.2.JAr、および以前にパッケージされた宋のフォントsimfang.jar、完全に出られます.この本には少なくともどのかばんに頼るべきかを書かなければなりません.
20151130:
ServeretContextにはgetRealPath(String name)があります
this.getClass().getClassLoader().getResource(")、ClassLoaderにgetResource(")があります.
1つ目はリアルパスを取りnameを加え、2つ目はリソースを取り、探し、見つからないとnullを返します.
ClassLoaderのgetResourceAsStream(String name)はもちろん
realPath:D:\edpywcw\rpttest\WebRoot
realPath2:D:\edpywcw\rpttest\WebRoot\
realPath2:D:\edpywcw\rpttest\WebRoot\
realPath4:D:\edpywcw\rpttest\WebRoot\aaa\bbb
realPath3=/D:/edpywcw/rpttest/WebRoot/WEB-INF/classes/
realPath3=/D:/edpywcw/rpttest/WebRoot/WEB-INF/classes/rebel.xml
両方ともgetResource()getResourceAsStream getResources/getResourcePathsメソッドがあります
書き込み
この文は
そしてサーブレットContextのgetResourceAsStreamを思い出し、次のように変更します.
getResourceAsStreamはコンテキストパスに対して絶対パスには適用されないため、エラーが発生しました.最後に:
夜に本の電子書籍をおりて、ireportは詳しく解いて、彼の言うことによって、公式サイトはjaspereport-libをダウンロードした後に、diskディレクトリの下でjarをすべてlibの下にコピーして、頼りにして、ひっきりなしに間違いを報告して、間違いによって順番にireportの下で対応するjarを見つけて、commons-logging-1.1.jar,commons-collections-3.2.1.jar,commons-digester-2.1.jar,groovy-all-2.0.1.jar,iText-2.1.7.js2.jar、jarパッケージが何をしているのか分かりませんが、diskのjasperreports-5.6.0を加えます.jar,jasperreports-applet-5.6.0.jar,jasperreports-fonts-5.6.0.jar,jasperreports-javaflow-5.6.0.jar,commons-beanutils-1.8.2.JAr、および以前にパッケージされた宋のフォントsimfang.jar、完全に出られます.この本には少なくともどのかばんに頼るべきかを書かなければなりません.
20151130:
ServeretContextにはgetRealPath(String name)があります
this.getClass().getClassLoader().getResource(")、ClassLoaderにgetResource(")があります.
1つ目はリアルパスを取りnameを加え、2つ目はリソースを取り、探し、見つからないとnullを返します.
ClassLoaderのgetResourceAsStream(String name)はもちろん
String realPath = this.getServletContext().getRealPath("");
System.out.println(" realPath:"+realPath);
String realPath2 = this.getServletContext().getRealPath("/");
System.out.println(" realPath2:"+realPath2);
realPath2 = this.getServletContext().getRealPath("\\");
System.out.println(" realPath2:"+realPath2);
String realPath4 = this.getServletContext().getRealPath("/aaa/bbb");
System.out.println("realPath4:"+realPath4);
// this.getServletContext().getResourcePaths(arg0)
// this.getServletContext().getResourceAsStream(arg0)
// this.getServletContext().getResource(arg0)
String realPath3 = this.getClass().getClassLoader().getResource("").getPath();
System.out.println("realPath3=" + realPath3);
realPath3 = this.getClass().getClassLoader().getResource("rebel.xml").getPath();
System.out.println("realPath3=" + realPath3);
// this.getClass().getClassLoader().getResourceAsStream(name)
// this.getClass().getClassLoader().getResources(name)
出力:realPath:D:\edpywcw\rpttest\WebRoot
realPath2:D:\edpywcw\rpttest\WebRoot\
realPath2:D:\edpywcw\rpttest\WebRoot\
realPath4:D:\edpywcw\rpttest\WebRoot\aaa\bbb
realPath3=/D:/edpywcw/rpttest/WebRoot/WEB-INF/classes/
realPath3=/D:/edpywcw/rpttest/WebRoot/WEB-INF/classes/rebel.xml
両方ともgetResource()getResourceAsStream getResources/getResourcePathsメソッドがあります
書き込み
JasperRunManager.runReportToPdfStream(getServletContext().getResourceAsStream("/report11.jasper"), sos, parameters);
この文は
FileInputStream fis = new FileInputStream(getServletContext().getRealPath("/report11.jasper"));
JasperRunManager.runReportToPdfStream(fis, sos, parameters);
fis.close();
そしてサーブレットContextのgetResourceAsStreamを思い出し、次のように変更します.
JasperRunManager.runReportToPdfStream(getServletContext().getResourceAsStream(getServletContext().getRealPath("/report11.jasper")), sos, parameters);
getResourceAsStreamはコンテキストパスに対して絶対パスには適用されないため、エラーが発生しました.最後に:
JasperRunManager.runReportToPdfStream(getServletContext().getResourceAsStream("/report11.jasper"), sos, parameters);