Tapestry automatically converts persistent page properties that are EJB references into EJB handles for storage. The down side of this is that you can't store an EJB handle as a persistent page property. Could this be the case?
----- Original Message ----- From: "Alex Loubyansky" <[EMAIL PROTECTED]> To: "'Howard M. Lewis Ship'" <[EMAIL PROTECTED]> Cc: "'Tapestry Developer'" <[EMAIL PROTECTED]> Sent: Wednesday, July 03, 2002 2:55 AM Subject: RE: [Tapestry-developer] Remote EJB interface as persistent property > Hello Howard, > > at last I tasted 2.0.5, though not exhaustively. I ran my old app I had > problem with. > > I haven't seen ClassCastException but I got "Unable to set property catalog > of component CategoryManager to tracker/ejb/Catalog:Stateless." This isn't > changed. > Environment: JBoss-3.1.0alpha(yes, not release...), Catalina-4.0.2, > JDK-1.4.0 (maybe, this is potential problem), Tapestry-2.0.5. > > Maybe, I misuse the framework as I don't see others complaining about the > issue. Sorry, I am now in a strict schedule and can't research it. If I have > time, I'll try to narrow the code causing the problem and let you know. > > Good luck! > > Here is the exception: > net.sf.tapestry.record.RollbackException > Unable to set property catalog of component CategoryManager to > tracker/ejb/Catalog:Stateless. > componentId: CategoryManager > newValue: tracker/ejb/Catalog:Stateless > propertyName: catalog > > net.sf.tapestry.util.DynamicInvocationException > Could not invoke method getCatalog on > com.imedia.tracker.web.pages.CategoryManager@381a53[CategoryManager]. > > java.lang.IllegalArgumentException > argument type mismatch > Stack Trace: > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 > ) > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl > .java:25) > java.lang.reflect.Method.invoke(Method.java:324) > net.sf.tapestry.util.prop.PropertyAccessor.set(PropertyAccessor.java:168) > net.sf.tapestry.util.prop.PropertyHelper.set(PropertyHelper.java:608) > net.sf.tapestry.record.PageRecorder.rollback(PageRecorder.java:228) > net.sf.tapestry.engine.RequestCycle.getPage(RequestCycle.java:246) > net.sf.tapestry.engine.PageService.service(PageService.java:84) > net.sf.tapestry.engine.AbstractEngine.service(AbstractEngine.java:747) > net.sf.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198) > net.sf.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:163) > javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > FilterChain.java:247) > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > ain.java:193) > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja > va:243) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 66) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja > va:190) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 66) > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase > .java:528) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 64) > org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2 > 46) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 64) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 > ) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 66) > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. > java:170) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 64) > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 > ) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 64) > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 64) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java > :174) > org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 > 66) > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: > 1012) > org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107 > ) > java.lang.Thread.run(Thread.java:536) > > > > -----Original Message----- > > From: Howard M. Lewis Ship [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, June 26, 2002 5:21 PM > > To: [EMAIL PROTECTED] > > Cc: 'Tapestry Developer' > > Subject: Re: [Tapestry-developer] Remote EJB interface as persistent > > property > > > > > > Have you downloaded 2.0.5? It has built-in JBoss 3.0.0 > > support and works > > well. > > > > ----- Original Message ----- > > From: "Alex Loubyansky" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Cc: "'Tapestry Developer'" <[EMAIL PROTECTED]> > > Sent: Thursday, May 23, 2002 10:43 PM > > Subject: RE: [Tapestry-developer] Remote EJB interface as persistent > > property > > > > > > > Hello, Howard. > > > > > > I won't stop using Tapestrty. But for now I just don't > > have time to get > > > into its bowels. The semantics is just cool, but I couldn't > > get it working > > > stably with JBoss 3.x. Mention one more about the problem: stateless > > session > > > bean's remote interface as persistent property. I tried different > > packaging, > > > making the variable as synthetic and still there were > > problems. May be I > > did > > > something wrong but I use VLib as an example. > > > > > > Thank you for trying to help. Sure, if I have some > > findings I'll share > > > with the list. > > > > > > alex > > > > > > > -----Original Message----- > > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > > > Sent: Thursday, May 23, 2002 10:55 PM > > > > To: [EMAIL PROTECTED] > > > > Cc: Tapestry Developer > > > > Subject: RE: [Tapestry-developer] Remote EJB interface as > > persistent > > > > property > > > > > > > > > > > > I'm not aware of any weakness in Tapestry that wouldn't > > > > affect Struts as well. When you redeploy a Struts-based > > > > WAR, you'll still be getting a new class loader, and > > > > some data you've stuffed into the HttpSession will no > > > > longer be usable. > > > > > > > > If you find otherwise, please check back with your > > > > findings. > > > > > > > > -- > > > > [EMAIL PROTECTED] > > > > > > > > http://tapestry.sf.net > > > > > Well, I've come to conclusion that Tapestrty-2.0.1 and > > > > JBoss-3.x/Tomcat > > > > > isn't compatible for now (I tried JBoss-3.0-RC3 and latest > > > > 3.1.0alpha) on > > > > > Win2000 with j2sdk-1.4.0. > > > > > By that I mean working with EJB's. > > > > > > > > > > Please, if someone got it working let me know. For now I > > > > don't see another > > > > > choice like get back to struts. > > > > > > > > > > pity, pity, pity.... > > > > > > > > > > alex > > > > > > > > > > > -----Original Message----- > > > > > > From: [EMAIL PROTECTED] > > > > > > [mailto:[EMAIL PROTECTED]]On > > > > Behalf Of > > > > > > [EMAIL PROTECTED] > > > > > > Sent: Thursday, May 23, 2002 4:46 PM > > > > > > To: [EMAIL PROTECTED] > > > > > > Cc: Tapestry Developer > > > > > > Subject: RE: [Tapestry-developer] Remote EJB interface as > > > > persistent > > > > > > property > > > > > > > > > > > > > > > > > > I just tried this using Jetty/JBoss and the Vlib.ear. > > > > > > > > > > > > I couldn't reproduce your problem because redeploying > > > > > > the Vlib.ear invalidated my session. This is a very > > > > > > sensible thing to do since it sidesteps class loader > > > > > > issues. I'm pretty sure its the standard approach taken > > > > > > by most application servers (including WebLogic). > > > > > > > > > > > > I'm sorry that with my limited resources I can't > > > > > > validate Tapestry against more configurations of servlet > > > > > > container and application server. This is an area where > > > > > > the help of the community is needed. > > > > > > > > > > > > -- > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > > http://tapestry.sf.net > > > > > > > I think I just have no other choice :) I have been > > > > > > struggling two days > > > > > > > with the problem. I'll try to run VLib and let you know. > > > > > > > > > > > > > > Thank you for the help, Howard. > > > > > > > > > > > > > > alex > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > > > > > > > Sent: Thursday, May 23, 2002 4:24 PM > > > > > > > > To: [EMAIL PROTECTED] > > > > > > > > Cc: Tapestry Developer > > > > > > > > Subject: RE: [Tapestry-developer] Remote EJB interface as > > > > > > persistent > > > > > > > > property > > > > > > > > > > > > > > > > > > > > > > > > Hm. Can you deploy the Vlib in this same application > > > > > > > > server configuration? > > > > > > > > > > > > > > > > -- > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > http://tapestry.sf.net > > > > > > > > > Tom, > > > > > > > > > > > > > > > > > > here it is. I got back that exception again. > > > > > > > > > > > > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > > > > > > > > > > > > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess > > > > > > > > orImpl.java:39 > > > > > > > > > ) > > > > > > > > > > > > > > > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth > > > > > > > > odAccessorImpl > > > > > > > > > .java:25) > > > > > > > > > java.lang.reflect.Method.invoke(Method.java:324) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.util.prop.PropertyAccessor.set(PropertyAcc > > > > > > > > essor.java:169 > > > > > > > > > ) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.util.prop.PropertyHelper.set(PropertyHelpe > > > > > > > > r.java:586) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.record.PageRecorder.rollback(PageRecorder. > > > > > > > > java:222) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > com.primix.tapestry.engine.RequestCycle.getPage(RequestCycle.java:257) > > > > > > > > > > > > > > > > > > > > > com.primix.tapestry.engine.PageService.service(PageService.java:92) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.engine.AbstractEngine.service(AbstractEngi > > > > > > > > ne.java:706) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.ApplicationServlet.doService(ApplicationSe > > > > > > > > rvlet.java:203 > > > > > > > > > ) > > > > > > > > > > > > > > > > > > > com.primix.tapestry.ApplicationServlet.doGet(ApplicationServle > > > > > > > > t.java:168) > > > > > > > > > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > > > > > > > > > > > > > > > > > > Hope, it's enough. Further follows catalina's stack. > > > > > > > > > > > > > > > > > > And this is my getCatalog(): > > > > > > > > > public Catalog getCatalog() { > > > > > > > > > > > > > > > > > > if(catalog == null) { > > > > > > > > > MTCatalogEngine engine = > > (MTCatalogEngine)getEngine(); > > > > > > > > > for(int i = 0; i < 2; ++i) { > > > > > > > > > try { > > > > > > > > > CatalogHome catalogHome = > > engine.getCatalogHome(); > > > > > > > > > setCatalog(catalogHome.create()); > > > > > > > > > break; > > > > > > > > > } catch(CreateException ce) { > > > > > > > > > throw new ApplicationRuntimeException(ce); > > > > > > > > > } catch(RemoteException re) { > > > > > > > > > engine.rmiFailure("Remote exception creating > > > > > > > > Catalog", re, i > 0); > > > > > > > > > } > > > > > > > > > } > > > > > > > > > } > > > > > > > > > return catalog; > > > > > > > > > } > > > > > > > > > > > > > > > > > > Please, any hints would greatly appreciated. > > > > > > > > > > > > > > > > > > TIA, > > > > > > > > > > > > > > > > > > alex > > > > > > > > > > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > > From: [EMAIL PROTECTED] > > > > > > > > > > > > [mailto:[EMAIL PROTECTED]]On > > > > > > > > > > Behalf Of Tom > > > > > > > > > > Davies > > > > > > > > > > Sent: Thursday, May 23, 2002 3:44 PM > > > > > > > > > > Cc: 'Tapestry-Developer (E-mail) > > > > > > > > > > Subject: Re: [Tapestry-developer] Remote EJB > > interface as > > > > > > > > persistent > > > > > > > > > > property > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Alex Loubyansky wrote: > > > > > > > > > > > Hi, all. > > > > > > > > > > > > > > > > > > > > > > Do someone have any thoughts on what the > > > > cause for this > > > > > > > > > > exception could > > > > > > > > > > > be? > > > > > > > > > > > Name: com.primix.tapestry.record.RollbackException > > > > > > > > > > > Message: Unable to set property catalog of component > > > > > > > > > > CategoryManager to > > > > > > > > > > > tracker/ejb/Catalog:Stateless. > > > > > > > > > > > componentId: CategoryManager newValue: > > > > > > > > tracker/ejb/Catalog:Stateless > > > > > > > > > > > propertyName: catalog > > > > > > > > > > > > > > > > > > > > > > Name: > > > > com.primix.tapestry.util.DynamicInvocationException > > > > > > > > > > > Message: Could not invoke method getCatalog on > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > com.imedia.tracker.web.pages.CategoryManager@45bb9d[CategoryManager]. > > > > > > > > > > > Name: java.lang.IllegalArgumentException > > > > > > > > > > > Message: argument type mismatch Trace: > > > > > > > > > > > > > > > > > > > > > > Catalog is a remote stateless session bean. I > > > > handle it > > > > > > > > > > like IBookQuery in > > > > > > > > > > > VLib tutorial. Please, if anyone have some thoughts > > > > > > let me know. > > > > > > > > > > > > > > > > > > > > What're the first few stack frames, and what's the > > > > > > signature of > > > > > > > > > > getCatalog()? > > > > > > > > > > > > > > > > > > > > Tom > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek No, I will not fix your computer. http://thinkgeek.com/sf _______________________________________________ Tapestry-developer mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/tapestry-developer
