Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to run jasper report in servlet
    primarykey
    data
    text
    <p>I have a simple jasper report which shows some data from database. The jasper report runs well on ireport designer. The problem is when i try to run the report from servlet. I am trying to export the report as pdf when running from a servlet. I included dependencies like </p> <pre><code>- jasperreports-4.6.0.jar - itextpdf-5.1.1.jar - commons-logging-1.1.1.jar - commons-collections-3.2.1.jar - commons-beanutils-1.8.3.jar - commons-digester3-3.2.jar - cglib-2.2.jar </code></pre> <p>I have placed my report1.jasper file inside /web/report1.jasper Here is my servlet file:</p> <pre><code>protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection connection; ServletOutputStream servletOutputStream =response.getOutputStream(); InputStream reportStream =getServletConfig().getServletContext().getResourceAsStream("/report1.jasper"); HashMap parameterMap = new HashMap(); String stdID="510BCT2010"; String semester="1"; parameterMap.put("stdID", stdID); parameterMap.put("semester", semester); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection ("jdbc:odbc:ACEM","",""); JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, parameterMap, connection); connection.close(); response.setContentType("application/pdf"); servletOutputStream.flush(); servletOutputStream.close(); } catch (Exception e) { // display stack trace in the browser StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); response.setContentType("text/plain"); response.getOutputStream().print(stringWriter.toString()); } } </code></pre> <p>When I run the servlet for the first time, i get the following error:</p> <pre><code>java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.&lt;clinit&gt;(ComponentsExtensionsRegistryFactory.java:100) java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:247) net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157) net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115) net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:53) net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:237) net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:214) net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:162) net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:133) net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:105) net.sf.jasperreports.engine.util.JRStyledTextParser.&lt;clinit&gt;(JRStyledTextParser.java:83) net.sf.jasperreports.engine.fill.JRBaseFiller.&lt;init&gt;(JRBaseFiller.java:121) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:88) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:103) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:61) net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153) net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55) net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:407) net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:201) net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:720) com.reports.reportGenerator.doGet(reportGenerator.java:54) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) </code></pre> <p>When i run the servlet after that i get following error</p> <pre><code>java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser net.sf.jasperreports.engine.fill.JRBaseFiller.&lt;init&gt;(JRBaseFiller.java:121) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:88) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:103) net.sf.jasperreports.engine.fill.JRVerticalFiller.&lt;init&gt;(JRVerticalFiller.java:61) net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153) net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55) net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:407) net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:201) net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:720) com.reports.reportGenerator.doGet(reportGenerator.java:54) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) </code></pre> <p>It says java.lang.NoClassDefFoundError. Have I missed some dependencies? My report has no graphs, only fetches data from a database</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload