jasperreports-6.0.0
Tomcat8
Java8
JSP側
test1.jsp
jsp
1import="model.CommodityPrice" 2import="model.test1" 3・ 4・ 5 6//test1クラスの実行 7test1 test1= new test1(); 8test1.pdftest();
Java側
test1.java
java
1package model; 2 3import model.CommodityPrice; 4 5import java.io.File; 6 7import java.text.SimpleDateFormat; 8import java.util.ArrayList; 9import java.util.Date; 10import java.util.HashMap; 11import java.util.List; 12import java.util.Map; 13 14import net.sf.jasperreports.engine.JasperCompileManager; 15import net.sf.jasperreports.engine.JasperExportManager; 16import net.sf.jasperreports.engine.JasperFillManager; 17import net.sf.jasperreports.engine.JasperPrint; 18import net.sf.jasperreports.engine.JasperReport; 19import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; 20 21public class test1 { 22 23 24 //public static void main(String[] args) { 25 public void pdftest() { 26 System.out.println("Java実行されています"); 27 // TODO 自動生成されたメソッド・スタブ 28 try { 29 String dir = new File(".").getAbsoluteFile().getParent(); 30 String dir2 = dir + "\webapps\TEST\page\JasperSample2.jrxml"; 31 System.out.println("現在のディレクトリ"+dir2); 32 33 File jrxmlFile = new File(dir2); 34 if(jrxmlFile.exists()){ 35 36 //埋め込みデータ作成(画面から取得した体で、手動で設定する。) 37 CommodityPrice adapter1 = new CommodityPrice(); 38 CommodityPrice adapter2 = new CommodityPrice(); 39 CommodityPrice adapter3 = new CommodityPrice(); 40 CommodityPrice adapter4 = new CommodityPrice(); 41 CommodityPrice adapter5 = new CommodityPrice(); 42 43 adapter1.setName("バナナ"); 44 adapter2.setName("メロン"); 45 adapter3.setName("みかん"); 46 adapter4.setName("いちご"); 47 adapter5.setName("ケーキ"); 48 49 50 51 adapter1.setPrice("100円"); 52 adapter2.setPrice("100円"); 53 adapter3.setPrice("100円"); 54 adapter4.setPrice("330円"); 55 adapter5.setPrice("530円"); 56 57 List<CommodityPrice> adapterList = new ArrayList<CommodityPrice>(); 58 59 adapterList.add(adapter1); 60 adapterList.add(adapter2); 61 adapterList.add(adapter3); 62 adapterList.add(adapter4); 63 adapterList.add(adapter5); 64 65 66 JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(adapterList); 67 68 //パラメータ設定用 69 Map<String,Object> params = new HashMap<String,Object>(); 70 71 72 // 日付形式のフォーマット 73 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 74 // フォーマットに合わせた文字列を出力 75 String yyyymmdd = sdf.format(new Date()); // 2016年12月05日 76 params.put("datetime", yyyymmdd); 77 78 79 // (1)テンプレートXMLのコンパイル 80 JasperReport jasperReport = JasperCompileManager 81 .compileReport(dir2); 82 83 // データソースとパラメータをコンパイルされた帳票に設定 84 JasperPrint pdf = JasperFillManager.fillReport(jasperReport, params,ds); 85 86 // 出力用のパス・ファイル名を指定する 87 File path = new File("C:\テスト1.pdf"); 88 89 // 帳票の出力 90 JasperExportManager.exportReportToPdfFile(pdf, path.getAbsolutePath()); 91 92 }else{ 93 System.out.println("jrxmlファイルが見つかりませんでした。"); 94 } 95 96 } catch (Exception e) { 97 e.printStackTrace(); 98 } 99 } 100}
java
1package model; 2 3public class CommodityPrice { 4 5 //「商品名」を保持するフィールド 6 private String name; 7 8 //「商品価格」を保持するフィールド 9 private String price; 10 11 //以下各フィールドのgetter/setter 12 public String getName() { 13 return name; 14 } 15 16 public void setName(String name) { 17 this.name = name; 18 } 19 20 public String getPrice() { 21 return price; 22 } 23 24 public void setPrice(String price) { 25 this.price = price; 26 } 27 28} 29
test1.javaを単体で動かすと、「Cドライブ」にテスト1.pdfが作成されるのですが、
test1.jspからインスタンスを生成して実行すると、PDFが作成されません。
どのようにしたらjspからjavaクラスを実行して、PDFを生成できるようになりますでしょうか?
jspからjavaを実行した際、読み込みファイル(jrxmlファイル)は読めています。
tomcat8-stdout.yyyy-mm-dd.logには
log
1Java実行されています 2現在のディレクトリC:...\page\JasperSample2.jrxml 3[WARN ] - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components (ComponentsEnvironment.java:126) 4[WARN ] - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/parts (PartComponentsEnvironment.java:117) 5[WARN ] - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components (ComponentsEnvironment.java:126) 6[WARN ] - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components (ComponentsEnvironment.java:126) 7[WARN ] - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/parts (PartComponentsEnvironment.java:117)
と記載され、test1.javaは読み込めています。
Jasperreportsの箇所でWARNは出ていますが、特にエラーはありません。
ちなみに、Tomcatは「C:\web\tomcat\」にインストールしています。
どなたかご教授を宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー