Hi,

This is a well known issue with CDI+EJB. It has been discussed few times
here and other forums.
CDI injects non-Serializable objects for EJB beans.
A workaround is to use a delegate CDI bean to lookup the EJBs. I.e. instead
of @Inject-ing EJBs in Wicket components inject a scoped CDI bean that
injects the EJBs in itself.
So the usage in Wicket would be:

public class MyComponent extends ... {
  @Inject MyCDIBean cdiBean;
  ...

  cdiBean.getEjb().doSomething();
  ...
}

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov


On Tue, Sep 9, 2014 at 9:53 AM, Stefan Lorenz <stefan.lor...@persis.de>
wrote:

> Hi,
>
> with Glassfish4 we get a lot of Exceptions when a page gets serialized.
>
> org.apache.wicket.serialize.java.JavaSerializer - Error serializing object
> class
> ..
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException:
> The object type is not Serializable!
> A problem occurred while checking object with type:
> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
> Field hierarchy is:
> ..
> ..
> private final org.jboss.weld.ejb.api.SessionObjectReference
> org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.reference
> [class=org.glassfish.weld.ejb.SessionObjectReferenceImpl]
>                                                                 private
> java.lang.Object org.glassfish.weld.ejb.SessionObjectReferenceImpl.ejbRef
> [class=com.sun.proxy.$Proxy202]
>
> protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h
> [class=com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate]
> <----- field that is causing the problem
>
>
> Any idea where this is coming from or what's causing this?
>
> Regards,
> Stefan
>
>

Reply via email to