2015-02-18 4 views
0

Я запускаю планировщик, в котором электронная почта создается автоматически. Я поставил кронтаб файл в окне Linux и когда я пытаюсь запустить планировщик, я получаю сообщение об ошибке:mysql null Указатель указателя

Exception excp conn: com.mysql.jdbc.Driver 

Я импортируемый все необходимые библиотеки, как вы можете видеть меня исходный код нуждается в срочной поддержке

package Hosting; 
Hosting.ScheduleMessanger 

public class ScheduleMessanger { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) 
    { 
     Statement stmt = null; 
     ResultSet rset = null; 
     Statement stmt1 = null; 
     ResultSet rset1 = null; 
     Connection conn = null; 
     int i = 0;int _fesc_ = 0;int _nesc_ = 0;int _lesc_ = 0; 
     String Query = "";String Query1 = "";String EmailText = "";String CustEmail = ""; 
     String connect_string = "jdbc:mysql://127.0.0.1/dbname?user=user&password=passw"; 


     try 
     { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      conn = DriverManager.getConnection(connect_string); 
     } 
     catch (Exception excp) 
     { 
      conn = null; 
      System.out.println("Exception excp conn: "+excp.getMessage()); 
      return; 
     } 

     Query = "Query goes here"; 
     try 
     { 
      stmt = conn.createStatement(); 
      rset = stmt.executeQuery(Query); 
      while (rset.next()) 
      { 
      EmailText = "Dear All <br>"; 
      EmailText = EmailText + "The complain #"+rset.getString(2)+" is still un-resolved. <br>"; 
      EmailText = EmailText + "This mail is being generated to take the matter in your knowledge. <br><br>"; 

      EmailText = EmailText + "Complain By : " + rset.getString(3) + " <br>"; 
      EmailText = EmailText + "Complaint Type : " + rset.getString(4) + "<br>"; 
      EmailText = EmailText + "Priority Level : " + rset.getString(21) + "<br>"; 
      EmailText = EmailText + "Problem Description : " + rset.getString(24) + "<br>"; 

      EmailText = EmailText+"Sincerely, <br>"; 

      _fesc_ = _nesc_ = _lesc_ = 0; 
      CustEmail = ""; 
      Query1 = "Second Query"; 
      try 
      { 
       stmt1 = conn.createStatement(); 
       rset1 = stmt1.executeQuery(Query1); 
       if (rset1.next()) 
       { 
       _fesc_ = rset1.getInt(1); 
       _nesc_ = rset1.getInt(2); 
       _lesc_ = rset1.getInt(3); 
       } 
       rset1.close(); 
       stmt1.close(); 
      } 
      catch (Exception e) 
      { 
       _fesc_ = _nesc_ = _lesc_ = 0; 
      } 

      if (_fesc_ == 0) 
      { 
       if (rset.getString(10).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(10) + ","; 
       } 
       if (rset.getString(11).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(11) + ","; 
       } 
       if (rset.getString(12).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(12) + ","; 
       } 
       i = SendEmail("Complain Escalation", "First Complain Escalation", EmailText, CustEmail); 
       if (i == 1) 
       { 
       UpdateEscalationTable(rset.getInt(1), 1, conn); 
       } 
      } 
      else if (_nesc_ == 0) 
      { 
       if (rset.getString(13).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(13) + ","; 
       } 
       if (rset.getString(14).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(14) + ","; 
       } 
       if (rset.getString(15).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(15) + ","; 
       } 
       i = SendEmail("Complain Escalation", "Second Complain Escalation", EmailText, CustEmail); 
       if (i == 1) 
       { 
       UpdateEscalationTable(rset.getInt(1), 2, conn); 
       } 
      } 
      else if (_lesc_ == 0) 
      { 
       if (rset.getString(16).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(16) + ","; 
       } 
       if (rset.getString(17).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(17) + ","; 
       } 
       if (rset.getString(18).length() > 1) 
       { 
       CustEmail = CustEmail + rset.getString(18) + ","; 
       } 
       i = SendEmail("Complain Escalation", "Final Complain Escalation", EmailText, CustEmail); 
       if (i == 1) 
       { 
       UpdateEscalationTable(rset.getInt(1), 3, conn); 
       } 
      } 
      } 
      rset.close(); 
      stmt.close(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

    } 

} 

    enter code here 

ответ

1

Вы пропустите соединение mysql jdbc в своем пути к классам.

+0

, где вы можете указать дополнительно –

+0

@TabishHafeez Как вы называете свою программу? – Jens

+0

, запустив файл crontab в linux –

1

Как Jens Отдается

Вы пропустите JDBC для MySQL connectior в вашем пути к классам.

Как его разрешить?

найти .classpath файл в проекте и добавьте путь mysql jdbc connection банки в файле .classpath,

Примечания: Если вы хотите изменить этот файл, и вы не знакомы с этим , так что будьте осторожны еще может возникнуть и другая ошибка.

Альтернативный вариант открыть проект в затмении

  1. правой кнопкой мыши на project --> build path --> configure build path
  2. появится Go Всплывающее до library tab --> Add jar --> Give Path to Your jar
  3. Построить проект снова и бинго вы хорошо идти

Некоторые предложения относительно You кода

newInstance() method в указанной ниже линии не требуется,

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

Непосредственно использовать

Class.forName("com.mysql.jdbc.Driver"); 

Вместо того, чтобы объявить переменные в одной строке, как этот

String Query = "";String Query1 = "";String EmailText = "";String CustEmail = ""; 

Объявить их в отдельной строке, которая увеличивает Читаемость

String Query = ""; 
String Query1 = ""; 
String EmailText = ""; 
String CustEmail = ""; 

Вместо использования String использования StringBuffer потому

String s = "a" + "b" + "c"; 

, в конечном счете становится

String s = new StringBuffer().append("a").append("b").append("c").toString(); 
+0

спасибо за ваше драгоценное время :) это помогло много. и я изменил свой код в соответствии с тем, что вы сказали мне. это действительно полезно. Я не могу ответить на ваш ответ, поскольку я новичок в этом –

+0

Если ваша проблема решена, [прочитайте это] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

0

Добавить банку файл, требуется для подключения в ваш Lib папку com.mysql.jdbc.Driver Перейдите по этой ссылке, чтобы открыть соединение http://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/ Скачать пример из выше ссылку, а затем скопировать вставить банку файлы SQL и использовать
Или
Скачать это прямо из http://dev.mysql.com/downloads/connector/j/