Hi, we have been faced with the same problem in our application.
You have to take care that after deserialization the spring beans are injected the "normal" way. We did this by marking spring beans as transient, like you did: private transient ServiceBean _serviceBean; //Setter Letting serialize the spring bean only brings back some nonsense and no spring object you can deal with. So we implemented the method readResolve() (called after deserialization) in the managed bean: public Object readResolve() throws ObjectStreamException { return TransientFieldsInjector.inject(this); } The injector has to get the bean from the spring BeanFactory and call the corresponding setter in the managed bean to inject it "manually". You have to do little reflection stuff, but only a few loc. Maybe there are also other solutions. We did it and it works very fine in combination with t:saveState. Hope this helps, cheers, Gerald On 9/25/06, Ingo Düppe <[EMAIL PROTECTED]> wrote:
Hi, I have a conceptional question. Within my application I define a managed-bean "registrationController" that gets a reference to a spring bean "registrationService" by the jsf property injection. The spring bean is stateless and is not serializable, so I need to define the field reference in "registrationController" as transient. This prevents me for getting NotSerializableException. But what happens if the session is reloaded, will jsf reinject the properties? Is there any recommended way how to deal with this. The obvious way to make the service bean serializable doesn't seem to work, because a whole data access layer is bound to the service bean. Or do I need to clearly separate. All managed-beans that have a reference to the service layer need to be scoped as application (or maybe as request) and only the value objects or entities are allowed to be stored in the session scope. Regards, Ingo Here is an example of my configuration: <managed-bean> <managed-bean-name>registrationController</managed-bean-name> <managed-bean-class>org.openuss.security.registration.RegistrationController</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> <managed-property> <property-name>service</property-name> <value>#{registrationService}</value> </managed-property> </managed-bean>
-- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces