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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранить логин и пароль внутри сервлета, не могу сохранить логин и пароль в бд 
:(
    Опции темы
Escorial
Дата 7.9.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня появилось желание создать логинку - но что бы имя, фамилия, логин, пароль и т.д. - заносились в бд.
использую postgresql, hibernate, jsp, tomсаt, eclipse.
создал дао классы, класс User с гетерами и сеттерами, на основе него создается бд, создал сервлет который забирает значения полей (логина и пароля) с html страницы и при успешной регестрации переводит на другую страницу.
ошибка появляется - когда я пытаюсь использовать полученые данные с request что бы задать логин и пароль  нового User(а) и сохранить его в бд. просто на просто не хочет сохранятся в сессии хибернейта.
если использовать классы не в сервлете все работает отлично.
вот код: 

import org.hibernate.HibernateException;
import org.hibernate.Query;

public class UserCreate extends SessionCreate{ /*использует методы дао класса там все нормльно работает, как собственно и этот класс*/

    public User createUser(String username, String password)
            throws Exception {
        try {
            begin();
            User user = new User(username, password);
            getSession().save(user);
            commit();
            return user;
        } catch (HibernateException e) {
            System.out.println("UserCreate");
         rollback();
            throw new Exception("Could not create user " + username, e);
        }
    }
}

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/login")

public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String loginName, password;
        loginName = request.getParameter("loginUser");
        password = request.getParameter("password");
        
        if (loginName != "" && loginName !=null && (password != null || password.trim() != "")){
            UserCreate create = new UserCreate();
            try {
                User user = create.createUser(loginName, password);
            } catch (Exception e) {
                System.out.println("error in the login servlet");
                e.printStackTrace();
            }
        }else{
            response.sendRedirect("index.jsp");
            return;
        }
            RequestDispatcher dispatcher = request.getRequestDispatcher("download.jsp");
            dispatcher.forward(request, response);
            return;    
    }
}

Это сообщение отредактировал(а) Escorial - 7.9.2012, 15:16
PM MAIL   Вверх
AntonSaburov
Дата 7.9.2012, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Как-то сложно выглядит - что это за класс такой SessionCreate ? 
По идее (на простом уровне) в методе init сервлета загрузить сессию хибернейта. В destroy ее хорошо бы освободить. Ну и пользоваться как обычной сессией. Или тогда информации явно недостаточно - там же скорее всего какие-то логи есть, ошибки. Или просто тишина и ничего не происходит ?
PM MAIL WWW ICQ   Вверх
Escorial
Дата 7.9.2012, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Простите моя вина - ввел в недоумение. опустите остальные классы, есть только класс User с полями loginName и password с гетерами и сетерами - на основе этих двух полей создается бд.
я пытаюсь создать сессию хибернейта внутри сервлета, создаю нового юзера - устанавливаю на нем loginName и password и закрываю сессию. в результате происходит исключение ClassNotFoundExceprion : org.hibernate.Session. ниже код сервлета:

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String loginName, password;
        loginName = request.getParameter("loginUser");
        password = request.getParameter("password");
        
        if (loginName != "" && loginName !=null && (password != null || password.trim() != "")){
               
               User user = new User();
               user.setLoginName(loginName);
               user.setPassword(password);

            try {
               
                SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
                Session session = sessionFactory.openSession();
      session.beginTransaction();
      session.save(user); // здесь вылетает exception ClassNotFoundExceprion : org.hibernate.Session
      session.getTransaction().commit();
      session.close();

            } catch (Exception e) {
                System.out.println("error in the login servlet");
                e.printStackTrace();
            }
        }else{
            response.sendRedirect("index.jsp");
            return;
        }
            RequestDispatcher dispatcher = request.getRequestDispatcher("download.jsp");
            dispatcher.forward(request, response);
            return;    
    }
}
PM MAIL   Вверх
AntonSaburov
Дата 7.9.2012, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Как-то мало верится, что такая ошибка вылетает - может все-таки полный стектрейс посмотреть ?
Или если такое действительно происходит, то может перепутаны JAR-файлы ? Например есть версия Hibernate 4 и 3 "в одном флаконе".
PM MAIL WWW ICQ   Вверх
Escorial
Дата 10.9.2012, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

java.lang.ClassNotFoundException: org.hibernate.Session
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at DataBase.LoginServlet.doPost(LoginServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

html страница:

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Servlet execution threw an exception


root cause 

java.lang.NoClassDefFoundError: org/hibernate/Session
    DataBase.LoginServlet.doPost(LoginServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: org.hibernate.Session
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    DataBase.LoginServlet.doPost(LoginServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


PM MAIL   Вверх
AntonSaburov
Дата 10.9.2012, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



А jar-файлы с Hibernate укладываются вместе с приложением в каталог WEB-INF/lib ?
PM MAIL WWW ICQ   Вверх
Escorial
Дата 10.9.2012, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



та нет. если честно, даже не понимаю зачем это делать - я же импортировал необходимые библиотеки в проект? можете подробней обьяснить!
PM MAIL   Вверх
AntonSaburov
Дата 11.9.2012, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Мда-а-а. Сударь, у вас большие пробелы в образовании smile Вот что делает с людьми всякие удобные IDE - ручками иногда надо поработать. Тогда все горазоб понятнее будет.
В двух словах - import позволяет ТОЛЬКО скомпилировать свой код. Но это не говорит, что импортированные классы автоматически появятся в приложении. Эти классы все также храняться в JAR-файлах и эти JAR-файлы надо устанвливать вместе с приложением (если конечно эти JAR-файлы не уставновлены уже на сервере Tomcat или другом подобном).
Hibernate вообщем-то в поставку Tomcat не входит. Так что надо его с собой "носить".
PM MAIL WWW ICQ   Вверх
Escorial
Дата 11.9.2012, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за обьяснение. я с этим никогда не сталкивался, так что рано или поздно...
кстати вы уже в одной из теме говорили про импортирование, поэтому я добавил jar файлы хибернейт в WEB-INF/lib, но ошибка осталась.

Это сообщение отредактировал(а) Escorial - 11.9.2012, 11:51
PM MAIL   Вверх
AntonSaburov
Дата 11.9.2012, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



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

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

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


 




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


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

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