Hi David,
I just posted on SeamFramework.org:
http://www.seamframework.org/Community/Seam2JEE5CompliantWithTheTCKRequirements
Seam Posting
I'm hoping to get some way to resolve this issue soon.
Perhaps its as you mentioned: Can't I just safely remove @Destroy?
Thanks,
.Burt
djencks wrote:
>
>
> On Mar 7, 2008, at 2:51 PM, Burt Prior wrote:
>
>>
>> Hi David and David,
>>
>> First, thank you both for helping us. Our team has been hanging on
>> your
>> every post!
>>
>>> Do you have any evidence that seam runs with a bean with a @Destroy
>>> annotated method on any certified platform?
>>
>> I sure don't, other than latest Seam doc/articles i've went thru here:
>> http://seamframework.org/Documentation/GettingStarted Getting
>> Started with
>> Seam
>>
>> Also, this booking example is the 'jee5' booking example; there is
>> a 'non
>> jee5' booking example as well in every Seam download. I think the
>> 'non
>> jee5' uses plain JavaBean and Hibernate instead of EJB3 and JPA.
>>
>> The only other JEE5 certified platform I know of that works with
>> Seam is
>> GlassFish. Not from personal exerience but from articles from Sun
>> and Seam.
>> http://weblogs.java.net/blog/caroljmcdonald/archive/2007/07/
>> sample_applicat_1.html
>> GlassFish and Seam
>>
>> I was just wondering. Anyone running Seam on a JEE5 compliant
>> server such
>> Geronimo or GlassFish must get the same error?
>
> Well, if they have an ejb with a @Destroy method we think they will
> get this error. The glassfish example for v2 does have one @Destroy
> method in CatalogBean but my experience trying to extract information
> from Glassfish has not been a happy one so I haven't tried anything
> on it.
>
>>
>>> Also, it doesn't make much sense.
>>
>> Yes, i agree. All the errors we solved to get to this point 'made
>> sense'.
>> But when I saw this error, and read David's response, i thought we
>> were in
>> trouble; If I'm hitting up against the spec, and I can't change my
>> code,
>> where does that leave my architecture? (Geronimo, EJB3, Seam,
>> Oracle, JPA,
>> JSF).
>>
>>> I would think the jboss/seam developers would be the ones to start
>>> this
>>> although we might challenge it also.
>>
>> Yes, I will post on the appropriate Seam list today. I guess the
>> question
>> is to focus on @Destroy? How would you phrase it?
>>
>> What also doesn't make sense is the Seam doc for @Destroy. Why do
>> we see
>> any issue at all?
>> http://docs.jboss.com/seam/2.1.0.A1/reference/en/html/
>> annotations.html#d0e19563
>> Seam @Destroy Annotation
>>
>>
>>> The challenge process typically takes a while.
>>
>> Yes. Not really an option for us. We are trying get our Geronimo
>> app out
>> now.
>>
>>> Other than filling up your logs what problems is this causing?
>>
>> There appears to be no other errors or problems. I've been
>> exercising the
>> app, watching the console log in real time in the eclipse console,
>> then
>> checking the db. It appears to work fine. It throws the
>> exceptions, then
>> recovers. It's always the same error: 'Callback methods cannot access
>> parameters'.
>>
>>> Seeing the entire stack trace from your bean's @Destroy method to the
>>> original exception might possibly shed more light on the subject.
>
> Does the destroy method on your beans actually do anything? If, like
> the samples, it does nothing, the simplest solution is to leave it
> out. If if does do something, does it get called? My belief from
> the stack trace is that it does not due to the exception.
>
> As for wording... that's tricky. I guess I'd say that running the
> app on the geronimo/openejb javaee5 certified container results in
> the stack trace and that allowing the InvocationContext to supply the
> parameters during a lifecycle call results in tck failures. I'd ask
> if they can run the sample with the @Destroy method getting called on
> a certified container without getting an exception and perhaps
> mention that we aren't aware of any support in the spec itself for
> this requirement.
>
> I'd include this part of the stack trace:
>
> 11:25:05,179 ERROR [OpenEJB] The bean instance business method
> encountered a
> system exception: Callback methods cannot access parameters
> java.lang.IllegalStateException: Callback methods cannot access
> parameters
> at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext.getParam
> eters(ReflectionInvocationContext.java:71)
> at
> org.jboss.seam.intercept.EJBInvocationContext.getParameters
> (EJBInvocationContext.java:34)
> at
> org.jboss.seam.intercept.SeamInvocationContext.getParameters
> (SeamInvocationContext.java:49)
> at
> org.jboss.seam.core.MethodContextInterceptor.aroundInvoke
> (MethodContextInterceptor.java:33)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:68)
> at
> org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke
> (EntityManagerProxyInterceptor.java:26)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:68)
> at
> org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke
> (HibernateSessionProxyInterceptor.java:27)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:68)
> at
> org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:
> 107)
> at
> org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke
> (SessionBeanInterceptor.java:50)
> at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext
> $Invocation.invoke(ReflectionInvocationContext.java:146)
> at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(
> ReflectionInvocationContext.java:129)
> at
> org.apache.openejb.core.interceptor.InterceptorStack.invoke
> (InterceptorStack.java:67)
> at
> org.apache.openejb.core.stateful.StatefulContainer._invoke
> (StatefulContainer.java:428)
> at
> org.apache.openejb.core.stateful.StatefulContainer.removeEJBObject
> (StatefulContainer.java:332)
> at
> org.apache.openejb.core.stateful.StatefulContainer.invoke
> (StatefulContainer.java:244)
> at
> org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod
> (EjbObjectProxyHandler.java:217)
> at
> org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke
> (EjbObjectProxyHandler.java:77)
> at
> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke
> (BaseEjbProxyHandler.java:321)
> at
> org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke
> (Jdk13InvocationHandler.java:49)
> at $Proxy76.destroy(Unknown Source)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
> at
> org.jboss.seam.intercept.RootInvocationContext.proceed
> (RootInvocationContext.java:31)
> at
> org.jboss.seam.intercept.ClientSideInterceptor$1.proceed
> (ClientSideInterceptor.java:76)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:56)
> at
> org.jboss.seam.ejb.RemoveInterceptor.aroundInvoke
> (RemoveInterceptor.java:41)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:68)
> at
> org.jboss.seam.core.SynchronizationInterceptor.aroundInvoke
> (SynchronizationInterceptor.java:32)
> at
> org.jboss.seam.intercept.SeamInvocationContext.proceed
> (SeamInvocationContext.java:68)
> at
> org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:
> 107)
> at
> org.jboss.seam.intercept.ClientSideInterceptor.invoke
> (ClientSideInterceptor.java:54)
> at
> org.javassist.tmp.java.lang.Object_$$_javassist_4.destroy(Object_$
> $_javassist_4.java)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
> at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
> at org.jboss.seam.Component.callComponentMethod(Component.java:2084)
> at org.jboss.seam.Component.callDestroyMethod(Component.java:2015)
> at org.jboss.seam.Component.destroy(Component.java:1331)
> at org.jboss.seam.contexts.Contexts.destroy(Contexts.java:251)
> at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:249)
> at
> org.jboss.seam.contexts.ServletLifecycle.endSession
> (ServletLifecycle.java:129)
> at
> org.jboss.seam.servlet.SeamListener.sessionDestroyed
> (SeamListener.java:49)
> at
> org.mortbay.jetty.servlet.AbstractSessionManager.removeSession
> (AbstractSessionManager.java:665)
> at
> org.mortbay.jetty.servlet.AbstractSessionManager$Session.invalidate
> (AbstractSessionManager.java:938)
> at
> org.mortbay.jetty.servlet.HashSessionManager$Session.invalidate
> (HashSessionManager.java:493)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.jboss.seam.contexts.FacesLifecycle.invalidateSession
> (FacesLifecycle.java:141)
> at
> org.jboss.seam.contexts.FacesLifecycle.endRequest(FacesLifecycle.java:
> 118)
> at
> org.jboss.seam.jsf.SeamPhaseListener.afterRenderResponse
> (SeamPhaseListener.java:515)
> at
> org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase
> (SeamPhaseListener.java:247)
> at
> org.jboss.seam.jsf.SeamPhaseListener.afterPhase
> (SeamPhaseListener.java:194)
> at
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAf
> ter(PhaseListenerManager.java:92)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:
> 142)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
> at
> org.apache.geronimo.jetty6.InternalJettyServletHolder.handle
> (InternalJettyServletHolder.java:65)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:83)
> at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:
> 141)
> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
> at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at
> org.jboss.seam.debug.hot.HotDeployFilter.doFilter
> (HotDeployFilter.java:68)
> at
> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter
> (SeamFilter.java:69)
> at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
> at org.mortbay.jetty.servlet.ServletHandler.handle
> (ServletHandler.java:360)
> at
> org.mortbay.jetty.security.SecurityHandler.handle
> (SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle
> (SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle
> (ContextHandler.java:726)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
> at
> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101
> (TwistyWebAppContext.java:40)
> at
> org.apache.geronimo.jetty6.handler.TwistyWebAppContext
> $TwistyHandler.handle(TwistyWebAppContext.java:65)
> at
> org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle
> (ThreadClassloaderHandler.java:46)
> at
> org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle
> (InstanceContextHandler.java:58)
> at
> org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle
> (UserTransactionHandler.java:48)
> at
> org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle
> (ComponentContextHandler.java:47)
> at
> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle
> (TwistyWebAppContext.java:59)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle
> (ContextHandlerCollection.java:206)
> at
> org.mortbay.jetty.handler.HandlerCollection.handle
> (HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest
> (HttpConnection.java:505)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:828)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run
> (SelectChannelEndPoint.java:395)
> at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214)
> at
> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run
> (ThreadPool.java:344)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
>
>
> <snip>
>
> Hope this helps
> thanks
> david jencks
>
>
>
--
View this message in context: http://www.nabble.com/Geronimo-2.1-and-Seam-tp15621154s134p15910538.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
|