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

Integracion Struts 2 Hibernate Spring

Estas en el tema de Integracion Struts 2 Hibernate Spring en el foro de Java en Foros del Web. Hola espero que me puedan ayudar he desarrollado un pequenio proyecto web que hasta ahorita solo es hacer un login pero uniendo estos 3 frameworks ...
  #1 (permalink)  
Antiguo 16/07/2011, 22:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Integracion Struts 2 Hibernate Spring

Hola espero que me puedan ayudar he desarrollado un pequenio proyecto web que hasta ahorita solo es hacer un login pero uniendo estos 3 frameworks este es mi codigo de mi archivo

hiberntate.cfg.xml

Código PHP:
<?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>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:xe</property>
        <property name="hibernate.connection.username">system</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.search.autoregister_listeners">false</property>
        <property name="current_session_context_class">thread</property>
        <mapping resource="com/main/hibernate/pojo/Clientes.hbm.xml" />
    </session-factory>
</hibernate-configuration>
Este es el contenido del archivo applicationContext.xml

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

    <bean id="hibernateSession" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    </bean>
    
    <bean id="clientesDAO" class="com.main.dao.ClientesDAOImp">
            <property name="sessionFactory" ref="hibernateSession"/>
    </bean>

</beans>
Este es el contenido de la clase Java

Ingresar.java
Código PHP:
package com.main.action;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.main.baseDatos.Operaciones;
import com.main.baseDatos.OperacionesImp;
import com.main.dao.ClientesDAO;
import com.main.dao.ClientesDAOImp;
import com.main.hibernate.pojo.Clientes;
import com.main.pojo.IngresoCliente;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class 
Ingresar  implements ModelDriven<Object>,SessionAware{

    private 
IngresoCliente cliente = new IngresoCliente();
    
int count=0;
    
    private static final 
long serialVersionUID 1L;

    
ApplicationContext appl= new ClassPathXmlApplicationContext("applicationContext.xml");

    
ClientesDAO clientesDAO= (ClientesDAOappl.getBean("clientesDAO");
    
    
/**
     * @param clientesDAO the clientesDAO to set
     */
    
public void setClientesDAO(ClientesDAOImp clientesDAO) {
        
this.clientesDAO clientesDAO;
    }

    public 
void setCliente(IngresoCliente cliente) {
        
this.cliente cliente;
    }

    public 
IngresoCliente getCliente() {
        return 
cliente;
    }
    
    @
SuppressWarnings("unchecked")
    public 
String execute() 
    {
        
System.out.println("el valor es "+cliente.getClave());
        
System.out.println("cliente que quiero guardar "+cliente.getClave());
        
System.out.println("el valor null "+clientesDAO);
        
//valoron= operaciones.entrar(cliente.getClave());
        
        //En una lista tipo clientes guardo los valores que me regresan de la busqueda 
        
List<Clientesvaloron= (List<Clientes>) clientesDAO.buscaCliente(cliente);
        
        
Iterator milagro=valoron.iterator();
        
        while(
milagro.hasNext())
        {
            
Clientes cliente=(Clientesmilagro.next();
             
count++;
        }
        
        
        if (
count>0)
        {
            
session.put("sesion"cliente);
            return 
"success";
        }
        else
        return 
"input";
    }
    
    @
Override
    
public Object getModel() {
        
// TODO Auto-generated method stub
        
return cliente;
    }

    private 
Map<String,Objectsession;
    @
Override
    
public void setSession(Map<StringObjectsession) {
        
// TODO Auto-generated method stub
        
this.session=session;
    }

    
    

Esta es la clase donde hago la implementancion para buscar a ese usuario

ClientesDAOImp.java
Código PHP:
package com.main.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.main.hibernate.pojo.Clientes;
import com.main.pojo.IngresoCliente;

public class 
ClientesDAOImp implements ClientesDAO{

    private 
SessionFactory sessionFactory;
    
    
/**
     * @param sessionFactory the sessionFactory to set
     */
    
public void setSessionFactory(SessionFactory sessionFactory) {
        
this.sessionFactory sessionFactory;
    }
    
    @
SuppressWarnings("unchecked")
    @
Override
    
public List<ClientesbuscaCliente(IngresoCliente cliente)
    {
        
        
Session session  sessionFactory.getCurrentSession();
        
        
        
session.beginTransaction();
        
        
Query query=session.createSQLQuery("select * from Clientes where clave=:clavesuca").addEntity(Clientes.class);
        List<
Clientesmilagroquery.setInteger("clavesuca"cliente.getClave()).list();
        
        
session.beginTransaction().commit();
        
        
        return   
milagro;
    }

No tengo ningun problema al ejecutar el codigo hace lo que quiero, mi duda es mas bien es ya estoy haciendo la integracion entre hibernate y spring pero entre struts2 y spring la estoy haciendo? como podran ver en la clase Ingresar.java tengo este pedazo de codigo

Código PHP:
ApplicationContext appl= new ClassPathXmlApplicationContext("applicationContext.xml");

    
ClientesDAO clientesDAO= (ClientesDAOappl.getBean("clientesDAO"); 
con el objeto clientesDAO que estoy agarrando las propiedades que estan en el bean "clientesDAO" ya estoy integrando struts2 con spring o sigue solo la integracion entre hibernate spring y si es solo hibernate con spring me pueden ayudar a hacer la integracion struts2 con spring POR FAVOR!!!! no entiendo esa parte
  #2 (permalink)  
Antiguo 19/07/2011, 19:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Integracion Struts 2 Hibernate Spring

Cita:
Iniciado por abner98 Ver Mensaje
Hola espero que me puedan ayudar he desarrollado un pequenio proyecto web que hasta ahorita solo es hacer un login pero uniendo estos 3 frameworks este es mi codigo de mi archivo

hiberntate.cfg.xml

Código PHP:
<?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>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:xe</property>
        <property name="hibernate.connection.username">system</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <property name="hibernate.search.autoregister_listeners">false</property>
        <property name="current_session_context_class">thread</property>
        <mapping resource="com/main/hibernate/pojo/Clientes.hbm.xml" />
    </session-factory>
</hibernate-configuration>
Este es el contenido del archivo applicationContext.xml

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

    <bean id="hibernateSession" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    </bean>
    
    <bean id="clientesDAO" class="com.main.dao.ClientesDAOImp">
            <property name="sessionFactory" ref="hibernateSession"/>
    </bean>

</beans>
Este es el contenido de la clase Java

Ingresar.java
Código PHP:
package com.main.action;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.main.baseDatos.Operaciones;
import com.main.baseDatos.OperacionesImp;
import com.main.dao.ClientesDAO;
import com.main.dao.ClientesDAOImp;
import com.main.hibernate.pojo.Clientes;
import com.main.pojo.IngresoCliente;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class 
Ingresar  implements ModelDriven<Object>,SessionAware{

    private 
IngresoCliente cliente = new IngresoCliente();
    
int count=0;
    
    private static final 
long serialVersionUID 1L;

    
ApplicationContext appl= new ClassPathXmlApplicationContext("applicationContext.xml");

    
ClientesDAO clientesDAO= (ClientesDAOappl.getBean("clientesDAO");
    
    
/**
     * @param clientesDAO the clientesDAO to set
     */
    
public void setClientesDAO(ClientesDAOImp clientesDAO) {
        
this.clientesDAO clientesDAO;
    }

    public 
void setCliente(IngresoCliente cliente) {
        
this.cliente cliente;
    }

    public 
IngresoCliente getCliente() {
        return 
cliente;
    }
    
    @
SuppressWarnings("unchecked")
    public 
String execute() 
    {
        
System.out.println("el valor es "+cliente.getClave());
        
System.out.println("cliente que quiero guardar "+cliente.getClave());
        
System.out.println("el valor null "+clientesDAO);
        
//valoron= operaciones.entrar(cliente.getClave());
        
        //En una lista tipo clientes guardo los valores que me regresan de la busqueda 
        
List<Clientesvaloron= (List<Clientes>) clientesDAO.buscaCliente(cliente);
        
        
Iterator milagro=valoron.iterator();
        
        while(
milagro.hasNext())
        {
            
Clientes cliente=(Clientesmilagro.next();
             
count++;
        }
        
        
        if (
count>0)
        {
            
session.put("sesion"cliente);
            return 
"success";
        }
        else
        return 
"input";
    }
    
    @
Override
    
public Object getModel() {
        
// TODO Auto-generated method stub
        
return cliente;
    }

    private 
Map<String,Objectsession;
    @
Override
    
public void setSession(Map<StringObjectsession) {
        
// TODO Auto-generated method stub
        
this.session=session;
    }

    
    

Esta es la clase donde hago la implementancion para buscar a ese usuario

ClientesDAOImp.java
Código PHP:
package com.main.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.main.hibernate.pojo.Clientes;
import com.main.pojo.IngresoCliente;

public class 
ClientesDAOImp implements ClientesDAO{

    private 
SessionFactory sessionFactory;
    
    
/**
     * @param sessionFactory the sessionFactory to set
     */
    
public void setSessionFactory(SessionFactory sessionFactory) {
        
this.sessionFactory sessionFactory;
    }
    
    @
SuppressWarnings("unchecked")
    @
Override
    
public List<ClientesbuscaCliente(IngresoCliente cliente)
    {
        
        
Session session  sessionFactory.getCurrentSession();
        
        
        
session.beginTransaction();
        
        
Query query=session.createSQLQuery("select * from Clientes where clave=:clavesuca").addEntity(Clientes.class);
        List<
Clientesmilagroquery.setInteger("clavesuca"cliente.getClave()).list();
        
        
session.beginTransaction().commit();
        
        
        return   
milagro;
    }

No tengo ningun problema al ejecutar el codigo hace lo que quiero, mi duda es mas bien es ya estoy haciendo la integracion entre hibernate y spring pero entre struts2 y spring la estoy haciendo? como podran ver en la clase Ingresar.java tengo este pedazo de codigo

Código PHP:
ApplicationContext appl= new ClassPathXmlApplicationContext("applicationContext.xml");

    
ClientesDAO clientesDAO= (ClientesDAOappl.getBean("clientesDAO"); 
con el objeto clientesDAO que estoy agarrando las propiedades que estan en el bean "clientesDAO" ya estoy integrando struts2 con spring o sigue solo la integracion entre hibernate spring y si es solo hibernate con spring me pueden ayudar a hacer la integracion struts2 con spring POR FAVOR!!!! no entiendo esa parte
POR FAVOR AYUDENME CUALQUIER AYUDA ES BIEN RECIBIDA!!!
  #3 (permalink)  
Antiguo 19/07/2011, 19:22
 
Fecha de Ingreso: junio-2011
Mensajes: 39
Antigüedad: 13 años, 4 meses
Puntos: 16
Respuesta: Integracion Struts 2 Hibernate Spring

Hola,

No conozco de Struts pero de Spring e Hibernate si y lo que si puedo decirte es que en el código que muestras solo veo integración de spring e hibernate, por ningun lado veo algo diferente.

Espero q alguien mas te ayude con lo de Struts
__________________
Saludos desde Colombia.
http://labs.distrit.co
  #4 (permalink)  
Antiguo 19/07/2011, 20:51
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 10 meses
Puntos: 10
Respuesta: Integracion Struts 2 Hibernate Spring

Hola,

No debes crear el contexto de Spring en un Action de Struts 2.
No debes obtener las referencias mediante getBean porque si lo haces, donde dejas Spring DI?
Hay una forma de integrar Spring - Struts 2 mucho mas sencilla y adecuada mediante una propiedad de Struts 2: <constant name="struts.objectFactory" value="spring" /> y un plugin spring-struts2 plugin

Echale un vistazo a http://struts.apache.org/2.0.14/docs...-jpa-ajax.html

Te va a ayudar mucho en lo que quieres hacer.
Saludos! :)
  #5 (permalink)  
Antiguo 19/07/2011, 21:12
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: Integracion Struts 2 Hibernate Spring

ey muchas gracias hualro revisare este link que me pasaste para ver en que mejorar y lograr la integracion de struts 2 con spring muchas gracias viejo!!!

Etiquetas: hibernate, spring, sql, struts
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 09:17.