[Resolvido] Postgis - Hibernatespatial - Dialect class not found

7 respostas
XOOM

Opa, Alguém já trabalhou ou trabalha com Postgis usando Hibernate/JPA?

Conforme manda o tutorial do hibernatespatial.com, fiz todos os passos para versão 4.x com maven, uma vez que meu hibernate era o 4-final também, porém não funciona na hora do deploy, diz que não foi possível encontrar o dialect.
Olhando os logs, vi que era devido não ter encontrado o postgis-jdbc-1.5.3.jar no repostório do hibernatespatial, baxei o tar.gz do postgis e gerei um jar, mesmo assim não resolveu o problema, então alterei as versões do meu hibernate para 3.6 e com isso alterei a versão do hibernatespatial para 1.x segui o tutorial novamente, agora sem erros no maven de dependências.

Na hora do deploy o mesmo erro do dialect, não foi possível encontrá-lo.

08:10:40,754 INFO  [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-4) HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
08:10:42,347 INFO  [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-2) HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
08:10:42,628 INFO  [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-1) HHH000130: Instantiating explicit connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
08:10:42,628 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.persistenceunit."fiscal.war#fiscalPgSQL": org.jboss.msc.service.StartException in service jboss.persistenceunit."fiscal.war#fiscalPgSQL": Failed to start service
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_07]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_07]
	at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_07]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: fiscalPgSQL] Unable to build EntityManagerFactory
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
	at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:162)
	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:85)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
	... 3 more
Caused by: org.hibernate.HibernateException: Dialect class not found: org.hibernatespatial.postgis.PostgisDialect
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:76)
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
	at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:180)
	at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
	at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2270)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2266)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1735)
	at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
	... 9 more
Caused by: org.hibernate.service.classloading.spi.ClassLoadingException: Unable to load class [org.hibernatespatial.postgis.PostgisDialect]
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:141)
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:73)
	... 20 more
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.hibernatespatial.postgis.PostgisDialect
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99)
	at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07]
	at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07]
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
	... 21 more

Os erros da versão 1.x e 4.x do hibernatespatial são os mesmos, mudando apenas o acesso a classe de dialect.

7 Respostas

wagnerfrancisco

Como que ficou o pom.xml em relação ao hibernate spatial e ao postgis-jdbc?

Faz um tempo que eu não uso, mas realmente não tinha versões recentes do driver do postgis no maven.

XOOM

wagnerfrancisco:
Como que ficou o pom.xml em relação ao hibernate spatial e ao postgis-jdbc?

Faz um tempo que eu não uso, mas realmente não tinha versões recentes do driver do postgis no maven.

Então, depois do downgrade do hibernatespatial, o problema da dependência resolveu, mas o problema de não encontrar o dialect continua.

Segue o pom:

...
    <repositories>
        <repository>
            <id>Hibernate Spatial repo</id>
            <url>http://www.hibernatespatial.org/repository</url>
        </repository>       
        <repository>
            <id>JBOSS</id>
            <url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
        </repository>        
    </repositories>
...
       <dependency>
            <groupId>org.hibernatespatial</groupId>
            <artifactId>hibernate-spatial-postgis</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.postgis</groupId>
            <artifactId>postgis-jdbc</artifactId>
            <version>1.3.3</version>
        </dependency>
	<dependency>
		<groupId>com.vividsolutions</groupId>
		<artifactId>jts</artifactId>
		<version>1.12</version>
	</dependency>
...
wagnerfrancisco

Já tentou rodar o hibernate spatial com a versão 1.5 do postgis?

Não só pra ver se resolve, mas tem mais recursos também.

O que eu tenho no meu projeto é o seguinte (não estou com as versões mais novas):

<dependency>
            <groupId>org.hibernatespatial</groupId>
            <artifactId>hibernate-spatial-postgis</artifactId>
            <version>1.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.postgis</groupId>
            <artifactId>postgis-jdbc</artifactId>
            <version>1.5.1</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
<dependency>
            <groupId>com.vividsolutions</groupId>
            <artifactId>jts</artifactId>
            <version>1.11</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
XOOM

wagnerfrancisco:
Já tentou rodar o hibernate spatial com a versão 1.5 do postgis?

Não só pra ver se resolve, mas tem mais recursos também.

O que eu tenho no meu projeto é o seguinte (não estou com as versões mais novas):

<dependency> <groupId>org.hibernatespatial</groupId> <artifactId>hibernate-spatial-postgis</artifactId> <version>1.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.postgis</groupId> <artifactId>postgis-jdbc</artifactId> <version>1.5.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.vividsolutions</groupId> <artifactId>jts</artifactId> <version>1.11</version> <type>jar</type> <scope>compile</scope> </dependency>

Opa, fiz as alterações, o erro persiste.

Caused by: org.hibernate.HibernateException: Dialect class not found: org.hibernatespatial.postgis.PostgisDialect
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:76)
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
	at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:180)
	at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
	at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2270)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2266)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1735)
	at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
	... 9 more
Caused by: org.hibernate.service.classloading.spi.ClassLoadingException: Unable to load class [org.hibernatespatial.postgis.PostgisDialect]
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:141)
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:73)
	... 20 more
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.hibernatespatial.postgis.PostgisDialect
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99)
	at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07]
	at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07]
	at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
	... 21 more
XOOM

Deve esta faltando alguma coisinha que não é dito no tutorial, heheeh doidera.

jweibe

Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.hibernatespatial.postgis.PostgisDialect at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99) at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07] at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07] at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138) ... 21 more
O jar da classe org.hibernatespatial.postgis.PostgisDialect esta no seu classpath? Por que ele ta te gerando um exception ClassNotFoundException,
verifica isso ai.

XOOM

jweibe:
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.hibernatespatial.postgis.PostgisDialect at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99) at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07] at java.lang.ClassLoader.loadClass(Unknown Source) [rt.jar:1.7.0_07] at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138) ... 21 more
O jar da classe org.hibernatespatial.postgis.PostgisDialect esta no seu classpath? Por que ele ta te gerando um exception ClassNotFoundException,
verifica isso ai.

Opa, era isso mesmo…nossa noobei feio.

Valeu.

Criado 31 de outubro de 2012
Ultima resposta 1 de nov. de 2012
Respostas 7
Participantes 3