Boa tarde, estou inciando em desenvolvimento java profissional, e este é o meu primeiro tópico neste fórum. Pena que seja em uma situação de desespero =)
Eu desenvolvi uma aplicação, relativamente, simples baseado nas apostilas do curso fj-21 e fj-28 da Caelum, utilizando VRaptor e Hibernate (com Hibernate Annotations).
A aplicação funciona sem nenhum problema na minha base (Tomcat 6.0.13, conexao jdbc diretamente), mas na hospedagem - Locaweb (Tomcat 5.5) com JVM dedicada - não funciona.
Na Locaweb, utilizando jdbc diretamente, a aplicação é bastaaaaante instável. Entretanto, desde quarta-feira, configuraram o JNDI para que eu possa utilizar, mas nada funciona com ele.
Eu criei um pequeno jsp de teste, que pega a sessao diretamente do HibernateConf. Segue:
<%@page import="br.com.segurotorcedor.modelo.ParametrosGerais"%>
<%@page import="br.com.segurotorcedor.dao.ParametrosGeraisDAO"%>
<%@page import="org.hibernate.Transaction"%>
<%@page import="br.com.segurotorcedor.conf.HibernateConf"%>
<%@page import="org.hibernate.Session"%>
<%
//Class.forName("br.com.segurotorcedor.conf.HibernateConf");
Session session2 = HibernateConf.getSession();
Transaction transaction = session2.beginTransaction();
ParametrosGeraisDAO dao = new ParametrosGeraisDAO(session2);
long l = 1;
ParametrosGerais p = dao.carregar(l);
response.getWriter().write(p.getStrAdminLogin());
transaction.commit();
O erro sempre acontece na linha onde é chamado o HibernateConf.getSession(). Tanto neste jsp de teste, qnt no DAOFactory qnd tento acessar a minha aplicação.
Chamando este jsp, o seguinte erro é apresentado (desculpa se tem coisa desnecessária, mas não estou conseguindo filtar mto bem esse log):
Já abri diversos chamados no suporte dessa empresa, mas eles insistem em afirmar que o erro é na minha aplicação, pois como criam um jsp para o teste do jndi (sem hibernate, claro) funciona, tanto no contexto add, qnt no principal.
Alguém já passou por problema parecido e pode me ajudar? Precisam de mais informações sobre minha aplicação? Já estou desesperado, pois não sei mais o que fazer para resolver esse problema.
Daniel, eu me lembro numa experiência com a Locaweb que eles tem algumas restrições no Tomcat e a minha aplicação também não funcionava, daí o HelpDesk me passou uma versão do Hibernate alterada pra funcionar no ambiente deles e resolveu… Só resta saber se eles já tem uma versão do Hibernate 3 assim né.
No caso de utilizacao do JNDI, ao invés de conexão direta jdbc, eu tenho que alterar a minha aplicação somente no hibernate.properties? Não teria outros pontos de alteração necessárias, tipo na criação de sessao?
Já utilizei os serviços da locaweb, que por sinal são muito bons, segundo o log de erros, o problema está no nome de referência para o banco, no caso clientesocyal
Primeiro você deveria verificar se nas configurações do tomcat eles criaram a conexão com esse nome clientesocyal, e outra coisa, não sei se reparou, mas se a configuração do seu hibernate.properties estiver do mesmo jeito que passou o código aqui:
Paulo, obrigado pela ajuda. Em relação as limitações do tomcat, no meu caso não existem, pois utilizo JVM privativa (eles nao vendem mais compartilhada). Sobre a me disponibilizarem a lib do hibernate alterada por eles, foi feito, mas por ser uma versão anterior, a app começou a apresentar outras exceções e por isso voltei ao jar que estava utilizando.
Já tentei substituir a lib na minha base, recompilando o meu projeto, mas não consegui fazer funcionar, nem mesmo na minha base.
Como faço para passar a utilizar essa outra versão da lib, sem que o meu projeto faça referência a essa classe (org/hibernate/engine/query/sql/NativeSQLQueryReturn)?
Na verdade, o erro acontece nessa linha de codigo do meu arquivo HibernateConf - factory = cfg.buildSessionFactory();
[quote=“lucianobianchi”]Já utilizei os serviços da locaweb, que por sinal são muito bons, segundo o log de erros, o problema está no nome de referência para o banco, no caso clientesocyal
Primeiro você deveria verificar se nas configurações do tomcat eles criaram a conexão com esse nome clientesocyal, e outra coisa, não sei se reparou, mas se a configuração do seu hibernate.properties estiver do mesmo jeito que passou o código aqui:
Luciano, obrigado também. Realmente, o hibernate.properties estava errado, sem o sinal de igualdade. Entretanto, não sei como, acho que ele estava aceitando a configuração do mesmo jeito, visto que o problema persiste da mesma forma. =/
Sobre a configuração do tomcat deles, eles afirmam que está correta, pois disponibilizam um arq jsp de teste de conexao com JNDI que estah funcionando. =/
Mas o problema é que a conexao deste arq com o JNDI é direta, sem uso do hibernate (claro).
Segue algumas informações geradas no log do tomcat, junto com a exceção que está acontecendo:
Será que não é nenhum problema de incompatibilidades de versões? Do hibernate, tomcat, hibernate-annotions?
Realmente não sei como resolver =/
Estou utilizando:
Hibernate-Version: 3.2.4.sp1
Hibernate Annotations - Version: 3.3.0.GA
Hibernate Commons Annotations - Version: 3.0.0.GA
EJB Implementation-Version: 3.0 Final Release March 14 2007
cara…nunca utilizei os serviçoes da locaweb com Hibernate3, mas na versão 2, tínhamos realemnte q usar o jar deles, por algumas limitações de segurança imposta por eles, inclusive quem fez a implementação do jar usada por eles foi o pessoal da Caelum (Paulo e Guilherme Silveira)…
agora na versão 3 eu não tenho certeza, confirma com o pessoal da Locaweb, pq se tiver q usar o jar deles mesmo, não adianta vc ficar batendo cabeça nesse erro…
alias, em q momento aquela exceção de NativeSQL eh disparada? em qualquer acesso ao banco?
[quote=“pedrobusko”]cara…nunca utilizei os serviçoes da locaweb com Hibernate3, mas na versão 2, tínhamos realemnte q usar o jar deles, por algumas limitações de segurança imposta por eles, inclusive quem fez a implementação do jar usada por eles foi o pessoal da Caelum (Paulo e Guilherme Silveira)…
agora na versão 3 eu não tenho certeza, confirma com o pessoal da Locaweb, pq se tiver q usar o jar deles mesmo, não adianta vc ficar batendo cabeça nesse erro…
alias, em q momento aquela exceção de NativeSQL eh disparada? em qualquer acesso ao banco?[/quote]
Pedro, como faço para alterar o jar do hibernate no meu projeto? A exceção que postei acima - java.lang.NoClassDefFoundError: org/hibernate/engine/query/sql/NativeSQLQueryReturn - acontece no meu arquivo br.com.segurotorcedor.conf.HibernateConf, na linha onde tento pegar a sessao: factory = cfg.buildSessionFactory();
A versão do Hibernate que estou utilizando é a 3.2.4.sp1, e a versão que a Locaweb disponibiliza é a 3.1.3 modificada.