Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java.lang.NullPointerException 
V
    Опции темы
jmich
Дата 18.2.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



Помогите, пожалуйста, разобраться с ошибками. 

 
Код
public class BaseServlet extends HttpServlet { 

   private BaseContact basecontact; 
    private BaseBean basebean; 
    
    public void init(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
       basecontact = new BaseContact(); 
        basebean = new BaseBean(); 
        
    } 

   public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
       
    
      List personnes = basecontact.getPersonnes(); 
    
      basebean.setPersonnes(personnes); 
      HttpSession session = request.getSession(); 
      session.setAttribute("userbase", basebean); 
      RequestDispatcher rDispatch = getServletContext().getRequestDispatcher("/base.jsp"); 
      rDispatch.forward(request, response); 
   } 
}



Код

public class BaseBean {

    List<Personne> personnes = null;
    
    public void setPersonnes(List<Personne> personnes){
        this.personnes=personnes;
            
    }
    public List<Personne> getPersonnes() {
        return personnes;
        }
    }



Erreur lors du chargement du pilote : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
18 févr. 2008 12:14:10 org.apache.catalina.core.StandardWrapperValve invoke 
GRAVE: "Servlet.service()" pour la servlet base a généré une exception 
java.lang.NullPointerException 
at com.roywmiller.contacts.base.BaseServlet.doGet(BaseServlet.java:34) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Thread.java:595)

Это сообщение отредактировал(а) jmich - 18.2.2008, 14:42
PM MAIL   Вверх
jmich
Дата 18.2.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



и вот это исключение  java.lang.NullPointerException в этой строке выскакивает:


Код

basebean.setPersonnes(personnes);



        
PM MAIL   Вверх
jManiak
Дата 18.2.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 6.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата(jmich @  18.2.2008,  14:41 Найти цитируемый пост)
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 

Вот это смущает...
PM MAIL ICQ   Вверх
jmich
Дата 18.2.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



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


public class BaseContact {
    public BaseContact() {
    }

    public static List<Personne> getPersonnes() {
            Personne personne = null;
        List<Personne> personnes = new ArrayList<Personne>();
        try {

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

            String url = "jdbc:mysql://gp:3306/maison";
            Connection con = DriverManager.getConnection(url, "root", "root");
            Statement statement = con.createStatement();

            //Exécution d'une requete ex1
            String requete1 = "SELECT nom, prenom, age FROM personne";

            System.out.println(requete1);
            ResultSet resultset = statement.executeQuery(requete1);

            //Traitement des résultats
            while (resultset.next()) {
                personne = new Personne();
                personne.setNom(resultset.getString("nom"));
                personne.setPrenom(resultset.getString("prenom"));
                personne.setAge(resultset.getString("age"));
                personnes.add(personne);
                System.out.println(personne.getNom("") + " "
                        + personne.getPrenom("") + " " + personne.getAge(""));

            }
            // fermeture de la connexion
            con.close();

        }

        catch (ClassNotFoundException e) {
            System.err.println("Erreur lors du chargement du pilote : " + e);
        } catch (SQLException sqle) {
            System.err.print("Erreur SQL : " + sqle);
        }
        return personnes;
    }

    //metode main:2 exemples
public static void main(String[] args) {
        BaseContact basecontact = new BaseContact();
        List<Personne> l = basecontact.getPersonnes();
        }}



PM MAIL   Вверх
jManiak
Дата 18.2.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 6.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Значит сервлет не понимает где лежит mysql connector, соответственно не может найти класс.
PM MAIL ICQ   Вверх
jmich
Дата 18.2.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



и как ему помочь это понять, в Classpath указать? 
PM MAIL   Вверх
jManiak
Дата 18.2.2008, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 6.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Ну по идее да, но с сервлетами не работал, так что определенно не скажу, мож там своя какая специфика.

Писал правда несколько мелких вещей на JSP, используя NetBeans, там просто в libraries заносил нужные библиотеки, а он сам уж подставлял их куда надо.
PM MAIL ICQ   Вверх
Kangaroo
Дата 18.2.2008, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(jmich @  18.2.2008,  14:38 Найти цитируемый пост)
и как ему помочь это понять, в Classpath указать?  

Положите .jar с драйвером в WEB-INF\lib


--------------------
Lost....
PM MAIL MSN   Вверх
jmich
Дата 18.2.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



спасибо, с драйвером разобралась. А вот с исключением java.lang.NullPointerException? 
PM MAIL   Вверх
Kangaroo
Дата 18.2.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата

at com.roywmiller.contacts.base.BaseServlet.doGet(BaseServlet.java:34) 

Ошибка на 34 строке, а у вас в листинге только 25   smile  Выложите весь код, вместе с импортами.


--------------------
Lost....
PM MAIL MSN   Вверх
jmich
  Дата 18.2.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



 List personnes = basecontact.getPersonnes();//ой сорри, вот на эту строку ругается   smile 

Код


package com.roywmiller.contacts.base;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class BaseServlet extends HttpServlet {

    private BaseContact basecontact;
    private BaseBean basebean;
    
    public void init(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     basecontact = new BaseContact();
        basebean = new BaseBean();
        
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        

        // recuperer collection personnes de la classe BaseContact
    
       List personnes = basecontact.getPersonnes();
    
        // peredaem collection Personnes iz BaseBean dlya base.jsp
        basebean.setPersonnes(personnes);
        HttpSession session = request.getSession();
        session.setAttribute("userbase", basebean); // ukazivaem id dlya base.jsp "userbase"

        RequestDispatcher rDispatch = getServletContext().getRequestDispatcher(
                "/base.jsp");
        rDispatch.forward(request, response);
    }
}


Это сообщение отредактировал(а) jmich - 18.2.2008, 16:44
PM MAIL   Вверх
PashaOvechkin
Дата 18.2.2008, 17:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 394
Регистрация: 1.4.2007
Где: Riga, Latvia

Репутация: 2
Всего: 4



Сделай перед сторкой с ексепшеном оутпут

Код

System.out.println("basecontact = = = " + basecontact);

И  смотри в лог. Судя по всему basecontact у тебя нулл...
PM MAIL Skype   Вверх
Kangaroo
Дата 18.2.2008, 17:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Exception может быть только из-за того, что не ициализирован basecontact. Посмотрите в дебаге basecontact.


--------------------
Lost....
PM MAIL MSN   Вверх
jitm
Дата 18.2.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 11.10.2006

Репутация: 2
Всего: 3



Цитата(PashaOvechkin @  18.2.2008,  17:09 Найти цитируемый пост)
И  смотри в лог. Судя по всему basecontact у тебя нулл... 



Цитата(Kangaroo @  18.2.2008,  17:20 Найти цитируемый пост)
Exception может быть только из-за того, что не ициализирован basecontact. 


Да вы реально правы, оба, если в методе setPersonnes не выполняются какие - то операции кроме присваивания (чего по сути не может быть), то здесь токо одно тонкое место это обьект которому пытаются изменить параметры ... тоесть basecontact это 99.9(9) % равен null smile
PM MAIL   Вверх
jmich
Дата 18.2.2008, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



получилось: basecontact = = = null

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1300 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.