Foros del Web » Programación para mayores de 30 ;) » Java »

Hibernate (HibernateTemplate)

Estas en el tema de Hibernate (HibernateTemplate) en el foro de Java en Foros del Web. Hola de nuevo compañeros (no quiero parecer pesado jejeje) Estoy haciendo una mini-aplicación web donde tengo una base de datos con una tabla de Alumnos, ...
  #1 (permalink)  
Antiguo 22/12/2010, 04:52
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 1
Hibernate (HibernateTemplate)

Hola de nuevo compañeros (no quiero parecer pesado jejeje)

Estoy haciendo una mini-aplicación web donde tengo una base de datos con una tabla de Alumnos, tengo ya unos cuantos agregados y solo quiero mostrarlos en una archivo JSP.

Estoy usando Hibernate+Spring+Struts y la capa de Struts se que funciona porque he hecho varias pruebas creandome Alumnos dentro de la propia aplicación y me los muestra sin problemas. Si intento acceder a la Base de Datos para "rescatar" la información, tengo un error con el uso de la función hibernateTemplate y tal vez sea porque mi conexión entre Spring-Hibernate no es correcta.


El error es el siguiente:

Código:
Struts Problem Report

Struts has detected an unhandled exception:
Messages: 	
File: 	escuela/dao/impl/AlumnoDaoHibernate.java
Line number: 	69
Stacktraces
java.lang.NullPointerException

    escuela.dao.impl.AlumnoDaoHibernate.lista(AlumnoDaoHibernate.java:69)
    escuela.web.AlumnoAction.lista(AlumnoAction.java:41)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
...
...
Y mis archivos applicationContext e hibernate.cfg.xml son estos:

aplicationContext.xml

Código:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/springhiber" />
        <property name="username" value="root" />
        <property name="password" value="samu@31" />
    </bean>

    <!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    </bean>
    

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="dataSource" ref="dataSource"/>
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>


    <!-- enable the configuration of transactional behavior based on annotations -->
    <tx:annotation-driven />

    <context:component-scan base-package="escuela" />

</beans>
hibernate.cfg.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>

    <mapping class="escuela.model.Alumno"/>
  </session-factory>
</hibernate-configuration>
hibernate.properties
Código:
#Seleccionamos el dialecto de la base de datos. InnoDB.
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#hibernate.dialect = org.hibernate.dialect.MySQLMyISAMDialect

#Aplicamos alias a nuestras consultas. True se sustituye por 'Y', false por 'N'.
hibernate.query.substitutions=true 'Y', false 'N'

#Cache de segundo nivel activada.
hibernate.cache.use_second_level_cache=true

#Información a hibernate del proveedor basico del servicio de cache.
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

#Desactivamos el debug de las consultas en la consola.
hibernate.show_sql=y


#Valores posibles: update, create-drop, create, validate.
#En este caso solo se actualiza una tabla cuando haya datos.
hibernate.hbm2ddl.auto=update
y el error en AlumnoDaoHibernate me lo devuelve justo en esta linea:

return hibernateTemplate.loadAll(Alumno.class);

Puede ser que este inyectando mal la sesion? otro problema?

Muchas gracias por todo ;)

Etiquetas: hibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.