Probleminha com aplicacao web e hibernate

to tendo esse erro qdo executo uma aplicacao web q pode ser isto?
e o seguinte tenho um bean em uma jsp funciona legal mas o esquema de criar a sessao do hibernate q ta dando pau se alguem puder ajudar fico grato desde ja . t+

   type Exception report

message 

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

exception 

org.apache.jasper.JasperException
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NullPointerException
	model.OpenSessao.getSession(OpenSessao.java:18)
	org.apache.jsp.adicionaContato_jsp._jspService(adicionaContato_jsp.java:71)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.

model.OpenSessao.getSession(OpenSessao.java:18)

Na linha 18 do método getSession() da classe model.OpenSessao

Esta sendo invocado um método ou propriedade de algum objeto que é NULL!

olha ai o codigo ta assim

[/code]
package model;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class OpenSessao {

private static SessionFactory factory;
static {
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
return factory.openSession();
}
}

[code]

Pelo código muito provavelmente seu objeto factory é null!
Confira se não está sendo lançada nenhuma exceção quando você gera sua SessionFactory

o factory ta blz mas ta dando este errinho aqi

org.hibernate.HibernateException: /hibernate.cfg.xml not found

meu arquivo cfg.xml ta dentro de src ta certo?

Se ta dentro ta correto, mas faz o seguinte verifica na pasta onde
ta sendo feito o deploy se o arquivo ta sendo exportado também,
é que alguma IDE’s por padrão só exportão os arquivos .class por exemplo

no caso de estar utilizando um deploy customizado (ANT por exemplo) verifique se seu deploy está configurado para copiar da pasta src outros arquivos além dos “.class” para a pasta do “.war”.

Exatamente a mesma afirmação que fiz :slight_smile:

TA TD CERTO TA EXPORTANDO SIM
MAS DA DA ERRO HIBERNATE.HBM.XML NOT FOUND
ESTOU UTILIZANDO O ECLIPSE WTP COM HIBERNATE 3 E POSTGRESQL

Seu arquivo tá dentro de alguma package?? Se tiver tire e coloque direto no src para ver se funciona.

Provavelmente quando dá esse erro, é o arquivo que nao esta no path correto !
Da uma olhada !

Abs

Utilizando a view Navigator ou mesmo o Windows Explorer
Verifique se na raiz do diretório classes dentro de WEB-INF
está o hibernate.cfg.xml e inclusive com o nome correto e extensão!

ai galera to postando os codigos ai e as imagens do meu projeto foi criado com o eclipse wtp


   package model;
public class Contato {
	private Integer codigo;
	private String Nome;
	private String Cidade;
	private Integer Fone;
	public Contato(){}
	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return Nome;
	}
	public void setNome(String nome) {
		Nome = nome;
	}
	public String getCidade() {
		return Cidade;
	}
	public void setCidade(String cidade) {
		Cidade = cidade;
	}
	public Integer getFone() {
		return Fone;
	}
	public void setFone(Integer fone) {
		Fone = fone;
	}	
}








package model;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class OpenSessao {
	
private static SessionFactory factory;
static {
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
return factory.openSession();
}
}




<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping    >

    <class name="Contato" table="contato">

        <id name="codigo"  ></id>

        <property name="nome" />

        <property name="cidade" />

        <property name="fone" />

    </class>

</hibernate-mapping>


<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration >
<session-factory>
<property name=" hibernate.dialect ">
org.hibernate.dialect.PostgreSQLDialect
</property>
<property name=" hibernate.connection.driver_class">
org.postgresql.Driver
</property>
<property name="hibernate.connection.url">
jdbc:postgresql://localhost:5432/psql?autoReconnect=true
</property>
<property name="hibernate.connection.username">
postgres
</property>
<property name="hibernate.connection.password">
512815
</property>
<!-- Condiguração do c3p0 -->
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">5000</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- Configurações de debug -->
<property name="show_sql">true</property>
<property name="hibernate.generate_statistics">true</property>
<property name="hibernate.use_sql_comments">true</property>

<mapping resource="contato.hbm.xml"/>
</session-factory>
</hibernate-configuration>


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="org.hibernate.Session"%>
<%@page import="org.hibernate.*"%>
<%@page import="model.OpenSessao;"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<jsp:useBean id="c" class="model.Contato"/>
<title>Insert title here</title>
</head>
<body>
<%	         
                   
         Session sessao = OpenSessao.getSession();
         Transaction transaction = sessao.beginTransaction(); 
         c.setCodigo(new Integer(1233));
         c.setCidade("apucarana");
         c.setFone(new Integer(22));
         c.setNome("leandro");            
         out.println(c.getCidade()); 
         sessao.save(c);          
         transaction.commit(); 
         sessao.close(); 
      
 %>
</body>
</html>

[/img]

[img]
http://www.4shared.com/file/27172227/aadb5ff7/socorro.html?cau2=403tNull

[/img]

Vi a imagem, como disse em 1 post anterior ( acredito que nao tenha tentado ), tire o hibernate.cfg.xml da package model e coloque na raiz de seu classpath.

O Rafael esta correto, o hibernate.cfg.xml deve se encontrar no default package(Java Resources: src) no seu caso ele esta no model, mas complementando o seu contato.hbm.xml deve estar contido no mesmo diretório também e não em model.

Good Luck!

Primeiro, o arquivo hibernate.cfg.xml deve ser colocado, obrigatoriamente, na raiz do CLASSPATH da aplicação. Portanto, coloque-o na raiz do diretório “classes”, dentro do diretório “WEB-INF”. Segundo, pelo que eu vi no código do arquivo hibernate.cfg.xml, coloque o arquivo contato.hbm.xml também na raiz do diretório “classes”, dentro do diretório “WEB-INF”.

ai galera fiz como vc´s me disseram coloquei os arquivos do hibernate na raiz do diretorio
ta exportando td blz mas mesmo assim da o erro

# root cause   
#   
# java.lang.NullPointerException  
#     model.OpenSessao.getSession(OpenSessao.java:18)  
#     org.apache.jsp.adicionaContato_jsp._jspService(adicionaContato_jsp.java:71)  
#     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)  
#     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
#     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)  
#     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)  
#     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)  
#     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
#   
#   
# note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.  

será que minha classe OpenSession que ta com problema ta compilando blz?
valew t+

Voce tem problemas em seu hibernate cfg, quando o seu programa tenta uma conexão com o banco de dados e não consegue ele deixa nulo o factory, logo, quando vc tentar usar o metodo de obter uma sessão dá o erro de NullPoint…vc tem que revisar seu cfg…por exemplo, na propriedade de url não vi o nome do banco de dados, alem de espaços em branco nos nomes das propriedades, acredito que depois de corrigido o cfg seu programa vai rodar normalmente.

ola
corrigi o cfg.xml
mas deu o seguinte erro agora


     root cause 

org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
	org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:63)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
	org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
	org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
	model.OpenSessao.insert(OpenSessao.java:20)
	org.apache.jsp.adicionaContato_jsp._jspService(adicionaContato_jsp.java:78)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.