I am trying to generate a print preview with jasper reports 7.0 in Netbeans, and i am using JDK 19. I have some records in database and i am trying to generate a print preview when a user clicks on a record. But so far i encounter this error anytime i click on the button to generate the preview.
Oct 20, 2024 10:32:22 AM net.sf.jasperreports.view.SaveContributorUtils createBuiltinContributors
WARNING: Error creating save contributor of type net.sf.jasperreports.pdf.view.save.JRPdfSaveContributor
java.lang.ClassNotFoundException: net.sf.jasperreports.pdf.view.save.JRPdfSaveContributor
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:495)
at java.base/java.lang.Class.forName(Class.java:474)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:208)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:148)
at net.sf.jasperreports.view.SaveContributorUtils.createBuiltinContributors(SaveContributorUtils.java:71)
at net.sf.jasperreports.swing.JRViewerToolbar.initSaveContributors(JRViewerToolbar.java:689)
at net.sf.jasperreports.swing.JRViewerToolbar.<init>(JRViewerToolbar.java:98)
at net.sf.jasperreports.swing.JRViewer.createToolbar(JRViewer.java:307)
at net.sf.jasperreports.swing.JRViewer.initComponents(JRViewer.java:280)
at net.sf.jasperreports.swing.JRViewer.<init>(JRViewer.java:235)
at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:276)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:656)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:588)
at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:536)
at pack.Main.jButton31ActionPerformed(Main.java:5045)
at pack.Main$25.actionPerformed(Main.java:1302)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
at java.desktop/java.awt.Component.processEvent(Component.java:6385)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
these are the libraries i am using for the jasper reports:
jasperreports-7.0.0.jar openpdf-1.3.30.jar commons-collections4-4.4.jar
commons-digester-2.1.jar jcommon-1.0.23.jar commons-beanutils-1.9.4.jar
ecj-3.30.0.jar jfreechart-1.5.3.jar commons-logging-1.2.jar
jackson-core-2.14.2.jar jackson-databind-2.14.2.jar jackson-annotations-2.14.2.jar
bcprov-jdk18on-1.72.jar jasperreports-fonts-7.0.0.jar commons-lang3-3.12.0.jar
bcutil-jdk18on-1.72.jar log4j-core-2.19.0.jar woodstox-core-6.4.0.jar
log4j-api-2.19.0.jar stax2-api-4.2.1.jar jackson-dataformat-xml-2.14.2.jar
the jdk version is JDK 19. The print priview sometimes opens with a blank page with no records from database. Please i will appreciate any assistance to make this work.
I was initially using JDK 22 but changed to JDK 19, should the JDK be the problem. I also modified and changed some of the jar library files hopping it will work out but still to no avail. This is the code below am using to get the records to print preview with jasper report:
con=Connector.db_connect();
try{
int row = clients_view.getSelectedRow();
JasperDesign jd =JRXmlLoader.load("reports\\myClientStatement.jrxml");
String table_click = (clients_view.getModel().getValueAt(clients_view.convertRowIndexToModel(row),
0).toString());
String sgl="SELECT clients.*,client_savings.* FROM clients,client_savings where clients.unique_id='"+table_click+"'";
JRDesignQuery newQuery = new JRDesignQuery();
newQuery.setText(sgl);
jd.setQuery(newQuery);
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport(jr,null,con);
JasperViewer.viewReport(jp,false);
}catch(JRException e){
JOptionPane.showMessageDialog(null,e);
}
You need to sign in to view this answers