Thx for your support! The thread thingy sounds good to me. But I don't know what you mean/what is a "report virtualizer"?!? I have a directory on Disk which contains our .jrxml and .jasper files. I then do Code: public JasperPrint printCoupon(CouponVO coupon, String mapping, Integer userID) throws FinderException { JRDataSource dataSource = new JRMapArrayDataSource(new Object[1]); HashMap<String, Object> map = new HashMap<String, Object>(); CustomerVO cvo = getCustomerFromSomewhere(); KassaArticleVO kavo = getArticleFromSomewhere(); CouponTypeVO tcvo = getCouponTypeFromSomewhere(); map.put("amout", coupon.getAmount()); map.put("bookingCode", tcvo.getBookingCode()); map.put("buyerCity", cvo.getCity()); map.put("buyerFirstName", cvo.getFirstName()); /*...*/ map.put("TXT_copy", "Copy"«»); map.put("coupon", null); map.put("user", null); try { String reportName = getReportFileName(); // "C:\Reports\sampleReport.jasper" return JasperFillManager.fillReport(reportName, map, dataSource); } catch (JRException ex) { logger.fatal(ex); return null; } } This makes JasperReport load the .jasper file using java.io.File and others. And Java.io.* must not be used in EJB according to EJB specs... nomike aka Michael Postmann Post edited by: nomike, at: 2006/10/12 13:42