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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с org.hibernate.dialect.PostgresSQLDial.. Dialect class not found 
V
    Опции темы
Molodec
Дата 30.5.2012, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день, господа. 
До этого пользовался hibernate 3.x поддержка которого встроена в NetBeans.
Но как только перешел на eclipse - начались проблемы. В данный момент приложение должно не использовать maven. А следовательно - все библиотеки подключать и качать вручную. На сайте самого hibernate есть 4 версия. Можно скачать и 3 версию, но не все, что необходимо, а по частям, отдельно ядро, отдельно аннотации. В четвертой уже собрано все необходимое для работы. Поэтому поставил четвертую. Но, при создании сессии какой бы диалект для своей PostgreSQL базы ее ставил постоянно выплывает ошибка:
Код

Initial SessionFactory creation failed.org.hibernate.HibernateException: Dialect class not found: org.hibernate.dialect.PostgresSQLDialect

Может она зависит от версии, может еще от того что я использую старые подходы...
Мои исх.файлы:
hibernate.cfg.xml:
Код

<?xml version='1.0' encoding='utf-8'?>
 <!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgresSQLDialect</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5434/ag</property>
    <property name="hibernate.connection.username">postgres</property>
    <property name="hibernate.connection.password">postgres</property>
  </session-factory>
</hibernate-configuration>

HibernateUtil(строит сессию):
Код

package ads.fsa;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;


@SuppressWarnings("deprecation")
public class HibernateUtil {
    private static final SessionFactory sessionFactory;
    
    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
         AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
         annotationConfiguration.addAnnotatedClass(RSSChannel.class);
            sessionFactory = annotationConfiguration.configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}


Сам вызов, который приводит к ошибке:
Код

public static <T> T saveOrUpdate(T entity) {
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            session.saveOrUpdate(entity);
            transaction.commit();
        } catch (Exception e) {
            transaction.rollback();
            e.printStackTrace();
        } finally {
            session.close();
        }
        return entity;
    }

Все библиотеки есть как в Build Path, Classpath так и в WEB-INF\LIB.
Проверял, класс org.hibernate.dialect.PostgresSQLDialect в библиотеке hibernate есть. 
В чем может быть проблема? Заранее спасибо.
PM MAIL   Вверх
jk1
Дата 30.5.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Может просто опечатка в диалекте?

У вас: <property name="hibernate.dialect">org.hibernate.dialect.PostgresSQLDialect</property>
Надо: <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Molodec
Дата 30.5.2012, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Простите, что запутал. В том случае что описан вообще выдается class not found. 
А если внести Ваше исправление-как раз то, о чем я и говорил:
Код

30.05.2012 2:11:11 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
30.05.2012 2:11:11 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.3.Final}
30.05.2012 2:11:11 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
30.05.2012 2:11:11 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
30.05.2012 2:11:11 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
30.05.2012 2:11:11 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
30.05.2012 2:11:11 org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
30.05.2012 2:11:11 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
30.05.2012 2:11:12 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
30.05.2012 2:11:12 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
30.05.2012 2:11:12 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
30.05.2012 2:11:12 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5434/ag]
30.05.2012 2:11:12 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=postgres, password=****}
30.05.2012 2:11:12 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
org.hibernate.HibernateException: Could not instantiate dialect class
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:82)
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
...

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


Эксперт
***


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

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



Залез в исходники хиба, вот место, на котором падает:
Код

try {
    return ( Dialect ) classLoaderService.classForName( dialectName ).newInstance();
}catch ( ClassLoadingException cnfe ) {
    throw new HibernateException( "Dialect class not found: " + dialectName, cnfe );
 }catch ( HibernateException e ) {
    throw e;
}catch ( Exception e ) {
    throw new HibernateException( "Could not instantiate dialect class", e );
}

Чтобы понять причину ошибки нужен root cause указанного Вами исключения, посмотрите его ниже по логу


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Molodec
Дата 30.5.2012, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

30.05.2012 5:11:06 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
30.05.2012 5:11:06 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.3.Final}
30.05.2012 5:11:06 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
30.05.2012 5:11:06 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
30.05.2012 5:11:06 org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
30.05.2012 5:11:06 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
30.05.2012 5:11:06 org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
30.05.2012 5:11:06 org.hibernate.cfg.Configuration doConfigure
INFO: HHH000041: Configured SessionFactory: null
30.05.2012 5:11:06 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
30.05.2012 5:11:06 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
30.05.2012 5:11:06 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: false
30.05.2012 5:11:06 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5434/ag]
30.05.2012 5:11:06 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=postgres, password=****}
30.05.2012 5:11:06 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
Initial SessionFactory creation failed.org.hibernate.HibernateException: Could not instantiate dialect class
Starting Jetty on port 8888
   [WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String ads.fsa.client.GreetingService.greetServer(java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: java.lang.NullPointerException
    at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: java.lang.NullPointerException
    at ads.fsa.server.GreetingServiceImpl.saveOrUpdate(GreetingServiceImpl.java:35)
    at ads.fsa.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
    ... 22 more
[ERROR] 500 - POST /asd/greet (127.0.0.1) 57 bytes
   Request headers
      Host: 127.0.0.1:8888
      Connection: keep-alive
      User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
      Accept: */*
      Referer: http://127.0.0.1:8888/Asd.html?gwt.codesvr=127.0.0.1:9997
      Accept-Encoding: gzip,deflate,sdch
      Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
      Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
      Content-Length: 160
      Origin: http://127.0.0.1:8888
      X-GWT-Module-Base: http://127.0.0.1:8888/asd/
      X-GWT-Permutation: HostedMode
      Content-Type: text/x-gwt-rpc; charset=UTF-8
   Response headers
      Content-Type: text/plain


PM MAIL   Вверх
jk1
Дата 30.5.2012, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Ага, то есть полный стэк и root cause GWT нам показывать не хочет. Придется смотреть самим. Для этого надо слегка модифицировать Вашего наследника RemoteServiceServlet'а, как в примере:

Код

public class FooServiceImpl extends RemoteServiceServlet implements FooService {

   final Logger logger = LoggerFactory.getLogger(StockServiceImpl.class);

// ...
 @Override
 public String processCall(String payload) throws SerializationException {
   try {
    return super.processCall(payload);
   } catch (RuntimeException e) {
    logger.warn("Service Layer threw exception: ", e);
    throw e;
   }
 }
}


С этим в логе точно будет nested exception, который и является причиной. Только к логгеру привязывайте своему.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Molodec
Дата 30.5.2012, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



jk1, долго разбирался, но все же "подркутил" более раннюю версию Hibernate - с ней все работает. 
Так что буду с ней пока двигаться дальше. Спасибо за помощь. 

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

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

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


 




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


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

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