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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с сервлетом 
:(
    Опции темы
WhiteDream
Дата 1.4.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



По просьбе модератора, создаю новую тему на основе предыдущей (для нового вопроса - новая тема)
Я переделал в сервлет эту прогу и теперь TestExample.java выглядит следующим образом:
Код
package de.laliluna.example;

import java.util.Iterator;
import java.util.List;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import de.laliluna.hibernate.InitSessionFactory;

//public class TestExample {
public class TestExample extends HttpServlet {
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       /*     Honey forestHoney = new Honey();
        forestHoney.setName("forest honey");
        forestHoney.setTaste("very sweet");
                Honey forest = new Honey();
                forest.setName("forest honey");
                forest.setTaste("very bad");
        Honey countryHoney = new Honey();
        countryHoney.setName("country honey");
        countryHoney.setTaste("tasty");
        createHoney(forestHoney);
        createHoney(countryHoney);
                createHoney(forest);  */
        
out.println("<html>" + "<head>" + "<title>Servlet MyHelly</title>");
        out.println("</head>" + "<body>");
               Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try{
            tx = session.beginTransaction();
                                List honeys = session.createQuery("from Honey as h WHERE name = 'forest honey'").list();
                                 for (Iterator iter = honeys.iterator(); iter.hasNext();) {
                Honey elem = (Honey) iter.next();

        out.println("Name = " + elem.getTaste()); 
        
            }
                        session.update(honeys);
                        tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();

        }
        out.println("</body>" + "</html>");
        out.close();
                  
    }     protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    public String getServletInfo() {
        return "Short description";
    } 
            
    private static void deleteHoney(Honey honey) {
        Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try {
            tx = session.beginTransaction();
            session.delete(honey);
                        tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();
        }
    }

    private static void createHoney(Honey honey) {
        Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try {
            tx = session.beginTransaction();
            session.save(honey);
            tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();
        }
    }

}

Не произведение исскуств, но все же. smile Если я убираю /* */, то сервлет запускается и выдает:
Name = very sweet Name = very bad - что и требуется.
Если же снова поставить, то таблица в базе данных опустевает и сервлет ничего не выдает. Нужно чтобы сервлет ничего не создавал, а просто искал.
PM MAIL   Вверх
tux
Дата 3.4.2006, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Цитата(WhiteDream @ 1.4.2006, 23:22 Найти цитируемый пост)
По просьбе модератора, создаю новую тему на основе предыдущей (для нового вопроса - новая тема)

Замечание насчет новой темы вообще-то к Goliath относилось smile Новая так новая.

Подозреваю, что проблема вот в этой строке:
Код

session.update(honeys);

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

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

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


 




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


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

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