2014-02-10 3 views
0

Я создаю программу, которая будет отображать данные внутри таблицы базы данных, я использую плагин IReport для netbeans для создания отчета для этого , Я хочу вызвать этот отчет, когда я нажму кнопку a. но это дает мне эту ошибку,Как я могу показать отчет, когда я нажимаю кнопку в программе java, используя плагин netbeans IReport

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:65) 
at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99) 
at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:95) 
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:72) 
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:60) 
at net.sf.jasperreports.engine.JasperCompileManager.getDefaultInstance(JasperCompileManager.java:83) 
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:448) 
at RecordManagementSystem.connection$thehandler.actionPerformed(connection.java:270) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6505) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320) 
at java.awt.Component.processEvent(Component.java:6270) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4861) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4687) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2719) 
at java.awt.Component.dispatchEvent(Component.java:4687) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) 
at java.awt.EventQueue.access$200(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:694) 
at java.awt.EventQueue$3.run(EventQueue.java:692) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:708) 
at java.awt.EventQueue$4.run(EventQueue.java:706) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
... 44 more 

Я думаю, что это та часть, где я получаю мои ошибки:

if(event.getSource()==show){ 
     try{ 
      String path = "C:\\NetBeansProjects\\SADSIGN\\src\\RecordManagementSystem\\report2.jrxml";     
      JasperReport jr = JasperCompileManager.compileReport(path); 
      JasperPrint jp = JasperFillManager.fillReport(jr, null,con); 
      JasperViewer.viewReport(jp); 
      }catch(Exception e){ 
      JOptionPane.showMessageDialog(null, save); 
      } 
       } 

здесь весь мой код:

import java.sql.*; 
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import net.sf.jasperreports.view.*; 
    import net.sf.jasperreports.engine.*; 

    public class connection extends JFrame { 

    Connection con; 
    Statement st; 
    ResultSet rs; 

    private JTextField t1; 
    private JTextField t2; 
    private JTextField t3; 
    private JButton b1; 
    private JButton b2; 
    private JButton b3; 
    private JButton b4; 
    private JButton ud; 
    private JButton del; 
    private JButton nw; 
    private JButton save; 

      private JButton show; 

    public connection(){   
     connect(); 
     createFrame(); 
    } 

    public void connect(){ 
     try{  
      String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
      Class.forName(driver); 

      String connect = "jdbc:odbc:RIM"; 
      con = DriverManager.getConnection(connect); 

      st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      String sql = "select * from test"; 
      rs = st.executeQuery(sql); 

     }catch(Exception e){} 
    } 

    public void createFrame(){ 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     getContentPane().setLayout(null); 
     setVisible(true); 
     setSize(480,200); 
     getContentPane().setBackground(Color.GRAY); 

     JLabel first = new JLabel("First name"); 
     first.setBounds(40, 11, 75, 14); 
     getContentPane().add(first); 

     t1 = new JTextField(); 
     t1.setBounds(102, 8, 108, 20); 
     getContentPane().add(t1); 
     t1.setColumns(10); 

     JLabel last = new JLabel("Last Name"); 
     last.setBounds(220, 11, 75, 14); 
     getContentPane().add(last); 

     t2 = new JTextField(); 
     t2.setBounds(288, 8, 100, 20); 
     getContentPane().add(t2); 
     t2.setColumns(10); 

     JLabel age = new JLabel("Age"); 
     age.setBounds(138, 39, 46, 14); 
     getContentPane().add(age); 

     t3 = new JTextField(); 
     t3.setBounds(187, 39, 108, 20); 
     getContentPane().add(t3); 
     t3.setColumns(10); 

     b1 = new JButton("next"); 
     b1.setBounds(40, 78, 75, 23); 
     getContentPane().add(b1); 

     b2 = new JButton("prev"); 
     b2.setBounds(123, 78, 75, 23); 
     getContentPane().add(b2); 

     b3 = new JButton("last\r\n"); 
     b3.setBounds(208, 78, 75, 23); 
     getContentPane().add(b3); 

     b4 = new JButton("first"); 
     b4.setBounds(299, 78, 89, 23); 
     getContentPane().add(b4); 

     ud = new JButton("Update"); 
     ud.setBounds(26, 123, 89, 23); 
     getContentPane().add(ud); 

     del = new JButton("Delete"); 
     del.setBounds(123, 123, 89, 23); 
     getContentPane().add(del); 

     nw = new JButton("New"); 
     nw.setBounds(225, 123, 89, 23); 
     getContentPane().add(nw); 

        show = new JButton("show"); 
        show.setBounds(400,123,89,23); 
        getContentPane().add(show); 

     save = new JButton("save"); 
     save.setBounds(324, 123, 89, 23); 
     getContentPane().add(save); 

     try{ 
      rs.next(); 
      t1.setText(rs.getString("Fname")); 
      t2.setText(rs.getString("Lname")); 
      t3.setText(rs.getString("Age")); 


     }catch(Exception e){ 

     } 
     thehandler handler = new thehandler(); 
     b1.addActionListener(handler); 
     b2.addActionListener(handler); 
     b3.addActionListener(handler); 
     b4.addActionListener(handler); 
     ud.addActionListener(handler); 
     del.addActionListener(handler); 
     nw.addActionListener(handler); 
     save.addActionListener(handler); 
        show.addActionListener(handler); 
      } 






private class thehandler implements ActionListener{ 
      public void actionPerformed(ActionEvent event){ 
       if(event.getSource()==b1){ 
        try{  
         if(rs.next()){ 
          t1.setText(rs.getString("fname")); 
          t2.setText(rs.getString("lname")); 
          t3.setText(rs.getString("age"));   

         }else{ 

          JOptionPane.showMessageDialog(null, "No more records"); 
          rs.previous(); 
         } 
        }catch(Exception e){} 
       } 

       if(event.getSource()==b2){ 
        try{       
         if(rs.previous()){ 
          t1.setText(rs.getString("fname")); 
          t2.setText(rs.getString("lname")); 
          t3.setText(rs.getString("age"));   

         }else{ 

          JOptionPane.showMessageDialog(null, "No more records"); 
          rs.next(); 
         } 
        }catch(Exception e){} 
       } 

       if(event.getSource()==b3){ 
        try{ 
         rs.last(); 
         t1.setText(rs.getString("fname")); 
         t2.setText(rs.getString("lname")); 
         t3.setText(rs.getString("age")); 
        }catch(Exception e){} 
       } 
       if(event.getSource()==b4){ 
        try{ 
         rs.first(); 
         t1.setText(rs.getString("fname")); 
         t2.setText(rs.getString("lname")); 
         t3.setText(rs.getString("age")); 

        }catch(Exception e){} 
       } 
       if(event.getSource()==ud){ 
        String fname = t1.getText(); 
        String lname = t2.getText(); 
        String age = t3.getText(); 

        try{ 
         rs.updateString("fname", fname); 
         rs.updateString("lname", lname); 
         rs.updateString("age", age);     
         rs.updateRow(); 

         JOptionPane.showMessageDialog(null, "Record updated successfully"); 
        }catch(Exception e){} 
       } 

       if(event.getSource()==del){ 
        try{ 
         rs.deleteRow(); 

         t1.setText(""); 
         t2.setText(""); 
         t3.setText(""); 



         if(rs.last()){ 
          rs.previous(); 
          t1.setText(rs.getString("fname")); 
          t2.setText(rs.getString("lname")); 
          t3.setText(rs.getString("age")); 


         }else if(rs.first()){ 
         rs.next(); 
         t1.setText(rs.getString("fname")); 
         t2.setText(rs.getString("lname")); 
         t3.setText(rs.getString("age")); 
         } 


        }catch(Exception e){} 
       } 

       if(event.getSource()==nw){ 
        t1.setText(" "); 
        t2.setText(" "); 
        t3.setText(" "); 
       } 

       if(event.getSource()==save){ 
        String lname = t1.getText(); 
        String fname = t2.getText(); 
        String age = t3.getText(); 
        JOptionPane.showMessageDialog(null, "Record Successfully added"); 


        try{ 
         rs.moveToInsertRow(); 

         rs.updateString("fname", lname); 
         rs.updateString("lname", fname); 
         rs.updateString("age", age); 
         rs.insertRow(); 

         rs.next(); 

         t1.setText(rs.getString("fname")); 
         t2.setText(rs.getString("lname")); 
         t3.setText(rs.getString("age")); 

        }catch(Exception e){} 
       } 

           if(event.getSource()==show){ 
           try{ 
            String path = "C:\\NetBeansProjects\\SADSIGN\\src\\RecordManagementSystem\\report2.jrxml";      
            JasperReport jr = JasperCompileManager.compileReport(path); 
            JasperPrint jp = JasperFillManager.fillReport(jr, null,con); 
            JasperViewer.viewReport(jp); 
           }catch(Exception e){ 
            JOptionPane.showMessageDialog(null, save); 
           } 
           } 
      } 
     } 
    public static void main(String[] args) { 
     new connection(); 
    } 
} 
+0

Не могли бы вы опубликовать результаты 'System.getproperty (« java.classpath »);' а также разместить местоположение, где находится ваш JDK? Если вы используете машину Windows, вы можете попробовать посмотреть в 'C: \ Java \ jdk1.7.0 \ bin'. Если местоположение не соответствует тому, что было напечатано 'println()', Google ** Set Classpath Java ** и следуйте инструкциям. – Rainbolt

ответ

2
try{ 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    Connection con= (Connection) DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","Inventari",null); 

    JasperDesign jd = JRXmlLoader.load("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Report\\Mjetethemelore.jrxml"); 
    JasperReport jr = JasperCompileManager.compileReport("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Report\\Mjetethemelore.jrxml"); 
    JasperPrint jp = JasperFillManager.fillReport(jr, new HashMap(),con); 
    JasperViewer.viewReport(jp); 
    JasperExportManager.exportReportToPdfFile(
    jp, "C:\\PDF Raportet\\MjeteReport.pdf"); 


} 

catch(Exception e){ 
    JOptionPane.showMessageDialog(null, e); 
} 
1

Это кажется, что отсутствует класс LogFactory. Пожалуйста, проверьте свою папку web-inf/lib и проверьте, присутствует ли класс org.apache.commons.looging.LogFactory или нет, также проверьте это в вашем пути сборки. Если нет, загрузите требуемую банку и добавьте в свой путь сборки.

Смежные вопросы