Hola,
Lo que quiero es mostrar un formulario en una JSF, utilizando SPRING e HIBERNATE para los beans y para almacenar la información. Funciona bien, pero me da un error, y es al instanciar el bean del servicio por medio de spring. El error es el siguiente:
ERROR [CacheMarshaller300] Error while marshalling object: ReplicateCommand{....
java.io.NotSerializableException: org.springframework.beans.factory.support.DefaultL istableBeanFactory
ERROR [CommandAwareRpcDispatcher] java.io.NotSerializableException: org.springframework.beans.factory.support.DefaultL istableBeanFactory
Teniendo en el applicationContext lo siguiente:
Código:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="dataSourceBS423A"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>PlataformaDatos</value>
</property>
</bean>
<!-- INICIO Hibernate SessionFactory -->
<bean id="sessionFactoryBS423A"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSourceBS423A" />
</property>
<property name="mappingResources">
<list>
<value>
es/xuntagalicia/modelo/entidad/hb/PtTHijotfn.hbm.xml
</value>
<value>
es/xuntagalicia/modelo/entidad/hb/PtTSolicitudtfn.hbm.xml
</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.connection.release_mode">auto</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
<!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> -->
<prop key="hibernate.show_sql">false</prop>
<prop key="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</prop>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
</props>
</property>
</bean>
<bean id="transactionManagerBS423A"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactoryBS423A" />
</property>
</bean>
<bean id="hibernateTemplateBS423A"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactoryBS423A" />
</property>
</bean>
<!-- FIN Hibernate SessionFactory -->
<!-- INICIO bean de los DAO -->
<bean id="wrappedSolicitudTfnDAO"
class="es.xuntagalicia.tfn.modelo.dao.hb.HibernateSolicitudTfnDAO">
<property name="hibernateTemplate">
<ref local="hibernateTemplateBS423A" />
</property>
<property name="logService">
<ref bean="logService"/>
</property>
</bean>
<bean id="solicitudTfnDAO"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManagerBS423A" />
</property>
<property name="target">
<ref bean="wrappedSolicitudTfnDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="find*">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="*">
PROPAGATION_REQUIRED
</prop>
</props>
</property>
</bean>
<bean id="wrappedHibernateHijoTfnDAO"
class="es.xuntagalicia.tfn.modelo.dao.hb.HibernateHijoTfnDAO">
<property name="hibernateTemplate">
<ref local="hibernateTemplateBS423A" />
</property>
<property name="logService">
<ref bean="logService"/>
</property>
</bean>
<bean id="hijoTfnDAO"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManagerBS423A" />
</property>
<property name="target">
<ref bean="wrappedHibernateHijoTfnDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="find*">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="*">
PROPAGATION_REQUIRED
</prop>
</props>
</property>
</bean>
<!-- FIN bean de los DAO -->
<bean id="ptSolicitudtfnConverter"
class="es.xuntagalicia.tfn.converter.PtSolicitudtfnConverter"
scope="prototype">
</bean>
<bean id="gestionSolicitudBS423AService"
class="es.xuntagalicia.tfn.service.impl.GestionSolicitudBS423AServiceImpl"
scope="prototype" parent="ConfiguracionTramitacionService">
<property name="solicitudTfnDAO">
<ref bean="solicitudTfnDAO" />
</property>
<property name="ptSolicitudtfnConverter">
<ref bean="ptSolicitudtfnConverter" />
</property>
</bean>
<!-- FIN Servicios -->
<!-- INICIO Acciones disponibles -->
<bean id="BS423AAltaAction"
class="es.xuntagalicia.tfn.action.BS423AAltaAction"
scope="prototype" parent="procesaAltaAction">
<property name="gestionSolicitudBS423AService">
<ref bean="gestionSolicitudBS423AService"/>
</property>
</bean>
<bean id="BS423AAltaEdicionAction"
class="es.xuntagalicia.tfn.action.BS423AAltaEdicionAction"
scope="prototype" parent="procesaAltaAction">
</bean>
<bean id="BS423AAction" class="es.xuntagalicia.tfn.action.BS423AAction"
scope="prototype">
<property name="consultaExpedienteService">
<ref bean="consultaExpedienteService"/>
</property>
<property name="tramitacionService">
<ref bean="tramitacionService" />
</property>
<property name="tareaService">
<ref bean="tareaService" />
</property>
<property name="logService">
<ref bean="logService" />
</property>
<property name="gestionSolicitudBS423AService">
<ref bean="gestionSolicitudBS423AService"/>
</property>
</bean>
</beans>
Y donde los objentos implementan la interfaz serializable, asi como el propio servicio.
Utilizo struts tb
Muchas gracias,
Un Saludo