I'm not injecting it directly.  I'm using a "proxy" class to get a reference
to the stateless bean's interface like so:

public class CartProxy
{
  private static ShoppingCartLocal lookupCartInterface()
  {
    ShoppingCartLocal cart = null;

    try
    {
      InitialContext ctx = new InitialContext();
      cart =
(ShoppingCartLocal)ctx.lookup("java:comp/env/ShoppingCartBean");
    }
    catch (NamingException exp)
    {
      LogProxy.saveEntry(exp);
    }

    return cart;
  }
}

The reference in web.xml makes this possible:

  <ejb-local-ref>
    <ejb-ref-name>ShoppingCartBean</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local>com.myapp.session.ShoppingCartLocal</local>
    <ejb-link>MyProjectEJB.jar#ShoppingCartBean</ejb-link>
  </ejb-local-ref>

Is this not supposed to work?  It's been in production for over 3 yrs...so I
hope it does!  :)

The entire app is built this way and this one page is the only one throwing
this exception.  It works, it doesn't stop the show or affect anything
negatively, so far as I can tell.  I would just like to get rid of it and
figure out what it is.

Thanks again,

-v

On Wed, Nov 18, 2009 at 11:49 PM, Igor Vaynberg <igor.vaynb...@gmail.com>wrote:

> wicket stuff contains a wicket-jee module which supports injecting ejb
> beans into wicket components the same way that wicket-spring injects
> wicket beans.
>
> -igor
>
> On Wed, Nov 18, 2009 at 10:37 PM, Pieter Degraeuwe
> <pieter.degrae...@systemworks.be> wrote:
> > Your cart has a reference to the sessionBean ShopingCart. This is not
> > allowed, however. The IOC incjectionsupport makes this possible by
> wrapping
> > this EJB reference with a serializable proxy.
> >
> > I only have expecience with wicket-spring end it works great. (In your
> case,
> > define your ejb reference in spring and inject it via wicket-spring
> support
> > in your page.
> > problem solved!
> >
> > Pieter
> >
> > On Wed, Nov 18, 2009 at 10:50 PM, VGJ <zambi...@gmail.com> wrote:
> >
> >> I'm completely at wits end here and I hope someone can point out what's
> >> wrong.
> >>
> >> I've got an e-commerce application that is simply moving between two
> pages
> >> using setRedirectPage() when going from a product detail page to the
> >> shopping cart page.  There isn't anything remarkable about either of
> these
> >> two pages, they're basically like any other in the app.  However, when
> the
> >> cart page loads, I get the exception at the bottom of this message.
> >>
> >> I've tried implementing Serializable on the Cart() page class but it
> makes
> >> no difference.  It points out
> >> "com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate" as the
> >> culprit.  I use a stateful session bean (ShoppingCart) which is passed
> >> around the app as part of the session (custom WebSession-derived class)
> >>
> >> This is the only page this occurs on.  There are several other steps in
> the
> >> cart's checkout process that look exactly like this one and the
> exception
> >> doesn't happen on any of the others
> >>
> >> Any ideas?
> >>
> >> Exception:
> >>
> >> 25717 [httpSSLWorkerThread-8080-1] ERROR
> >> org.apache.wicket.util.lang.Objects
> >> - Error serializing object class com.myapp.ui.Cart [object=[Page class =
> >> com.myapp.ui.Cart, id = 3, version = 0]]
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
> >> Unable to serialize class:
> >> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
> >> Field hierarchy is:
> >>  3 [class=com.myapp.ui.Cart, path=3]
> >>    private java.lang.Object org.apache.wicket.MarkupContainer.children
> >> [class=[Ljava.lang.Object;]
> >>      private
> >> org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper
> >>
> >>
> org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper[6]
> >> [class=org.apache.wicket.markup.html.form.Form, path=3:cartForm]
> >>        private java.lang.Object
> org.apache.wicket.MarkupContainer.children
> >> [class=[Ljava.lang.Object;]
> >>          private java.lang.Object
> >> org.apache.wicket.MarkupContainer.children[0]
> [class=com.myapp.ui.Cart$1,
> >> path=3:cartForm:orderLinesView]
> >>            final com.myapp.session.ShoppingCartLocal
> >> com.myapp.ui.Cart$1.val$cart [class=$Proxy92]
> >>              protected java.lang.reflect.InvocationHandler
> >> java.lang.reflect.Proxy.h
> >> [class=com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate]
> >> <----- field that is not serializable
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:346)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:392)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:392)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:684)
> >>        at
> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:129)
> >>        at
> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
> >>        at
> >> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1120)
> >>        at
> >>
> >>
> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203)
> >>        at
> >>
> >>
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:840)
> >>        at
> >>
> >>
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332)
> >>        at org.apache.wicket.Session.requestDetached(Session.java:1404)
> >>        at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1176)
> >>        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1454)
> >>        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
> >>        at
> >>
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456)
> >>        at
> >>
> >>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> >>        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> >>        at
> >>
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
> >>        at
> >> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> >>        at
> >>
> >>
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> >>        at
> >>
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
> >>        at
> >> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
> >>        at
> >> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> >>        at
> >> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> >>        at
> >>
> >>
> com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> >> Caused by: java.io.NotSerializableException:
> >> com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> >>        at
> >>
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> >>        at
> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> >>        at
> >>
> >>
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> >>        at
> >>
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> >>        at
> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> >>        at
> >>
> >>
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> >>        at
> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> >>        at
> >>
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> >>        at
> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> >>        at
> >>
> >>
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> >>        at
> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> >>        at
> >>
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> >>        at
> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> >>        at
> >>
> >>
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> >>        at
> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> >>        at
> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> >>        at
> >>
> >>
> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
> >>        ... 38 more
> >>
> >
> >
> >
> > --
> > Pieter Degraeuwe
> > Systemworks bvba
> > Belgiƫlaan 61
> > 9070 Destelbergen
> > GSM: +32 (0)485/68.60.85
> > Email: pieter.degrae...@systemworks.be
> > visit us at http://www.systemworks.be
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to