Do you do any redirecting in your onActivate? (eg do you return another page under some conditions).
Can you show me the (simplified) code that's firing for your push? I think I might have spotted a bug, tapestry-cometd will always pass EMPTY_EVENT_CONTEXT as the page activation context for push events. Perhaps this is causing your issue? https://github.com/uklance/tapestry-cometd/blob/master/src/main/java/org/lazan/t5/cometd/services/internal/PushManagerImpl.java#L60 On 23 Apr 2013 08:15, "Tom Nys" <runesmac...@hotmail.com> wrote: > I found that the problem accurs in the onActivate() function. > > Our pages give information between eachotter trought the activationcontext. > Since it's a fake request it doesn't have this context, and or pages are > made that they redirect when the context is empty. > removing this check is not realy an option. I guess that putting the chat > in the sidebar is just impossible becous of this? > > -----Oorspronkelijk bericht----- From: Lance Java > Sent: Monday, April 22, 2013 6:14 PM > To: Tapestry users > Subject: Re: Live support solution > > Also, do you have a security framework that might be getting in the way? > Perhaps this framework is returning a login page Link because it can't find > the session on the Fake request. > On 22 Apr 2013 16:56, "Lance Java" <lance.j...@googlemail.com> wrote: > > I get the feeling that your push action is returning a Link (or a page or >> something) when it should return a Block. I'm not sure why else tapestry >> would try and call response.encodeRedirectURL(...**) >> >> Take another look at the demo, there are two topics defined in >> ChatService: >> >> /chatservice/users - the java.util.Collection of users is broadcast on >> this topic whenever >> a user enters or leaves the chatroom >> >> /chatservice/chat - All chat messages are broadcast to this topic. >> >> Then there is a page with two PushTargets (one for each topic) >> >> https://github.com/uklance/**tapestry-cometd-demo/blob/** >> master/src/main/resources/org/**lazan/t5/cometddemo/pages/**Chat.tml<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/resources/org/lazan/t5/cometddemo/pages/Chat.tml> >> >> The main guts of the demo is in these two classes: >> >> https://github.com/uklance/**tapestry-cometd-demo/blob/** >> master/src/main/java/org/**lazan/t5/cometddemo/services/** >> internal/ChatServiceImpl.java<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/java/org/lazan/t5/cometddemo/services/internal/ChatServiceImpl.java> >> >> >> https://github.com/uklance/**tapestry-cometd-demo/blob/** >> master/src/main/java/org/**lazan/t5/cometddemo/services/**internal/** >> ChatSubscriptionListener.java<https://github.com/uklance/tapestry-cometd-demo/blob/master/src/main/java/org/lazan/t5/cometddemo/services/internal/ChatSubscriptionListener.java> >> On 22 Apr 2013 15:58, "Tom Nys" <runesmac...@hotmail.com> wrote: >> >> Well i'm trying to put the chatmessages into a div thats in my sidebar >>> (admin side of my application). >>> >>> I have the error on all the pages that have an OnPassivate() method. >>> >>> I tryed the demo application but i didn't understand everything that's >>> happening so i'm tryng to start from scratch (looking at the wiki pages >>> you >>> posted) >>> I also think one of the problems is that we use an ssl connection (no >>> real proof here) and the chat also needs to be encrypted. i don't know if >>> this chat is. >>> >>> What i need the application to eventually do: >>> >>> a client can log onto the site and open a chat with an admin. >>> the admin gets a notice and clicks on the name of that client to open the >>> chat with him. >>> they start chatting and the admin eventually closes that chat. he can >>> then choos anothcer client that opened the chat. >>> >>> The side of the admin needs to be in the sidebar component wich appears >>> on every page of our application so he can go to the details of that user >>> and don't lose the chat. >>> >>> The client side is just a page for the moment (so no specials there, just >>> a simple chat reciever-sender like on your wiki). >>> >>> Greets >>> Runesmacher >>> -----Oorspronkelijk bericht----- From: Lance Java >>> Sent: Monday, April 22, 2013 4:17 PM >>> To: Tapestry users >>> Subject: Re: Live support solution >>> >>> Hi, sorry for the late response, I've been on holiday. I'm the author of >>> tapestry-cometd. >>> >>> Tapestry-cometd has to fool tapestry into thinking there is a "real" >>> request /response when a push is initiated. It does this via a >>> FakeHttpServletRequest (and Response). Note that not all methods are >>> implemented in the fake objects (eg encodeRedirectURL) >>> >>> It looks like your push action is trying to do a redirect. Can you tell >>> me >>> a bit more about what you're trying to do in your push? >>> >>> The main use case for tapestry-cometd is to render a template and return >>> a >>> Block which is used to append, prepend or replace the content in a >>> PushTarget. >>> >>> I have not done a release yet but if you take a look at trunk for >>> tapestry-cometd and tapestry-cometd-demo, you will see a much better chat >>> example. >>> >>> Cheers, >>> Lance. >>> On 22 Apr 2013 09:13, "Tom Nys" <runesmac...@hotmail.com> wrote: >>> >>> I've looked into tapestry-cometd again. hoping to find a solution. >>> >>>> >>>> but i get the folowing error when trying to implement it in my sidebar >>>> component. >>>> >>>> java.lang.******UnsupportedOperationException >>>> encodeRedirectURL >>>> >>>> Filter stack frames Stack trace >>>> org.lazan.t5.cometd.services.******internal.** >>>> FakeHttpServletResponse.******encodeRedirectURL(** >>>> FakeHttpServletResponse.java:******109) >>>> org.apache.tapestry5.internal.******services.ResponseImpl.** >>>> encodeRedirectURL(******ResponseImpl.java:67) >>>> org.apache.tapestry5.internal.******services.LinkImpl.** >>>> toRedirectURI(LinkImpl.java:******138) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxLinkComponentEventResultPr******ocessor.**processResultValue(**** >>>> AjaxLinkComponentEventResultPr******ocessor.java:41) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxLinkComponentEventResultPr******ocessor.**processResultValue(**** >>>> AjaxLinkComponentEventResultPr******ocessor.java:27) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxPageNameComponentEventResu******ltProcessor.****** >>>> processResultValue(** >>>> AjaxPageNameComponentEventResu******ltProcessor.java:55) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxPageNameComponentEventResu******ltProcessor.****** >>>> processResultValue(** >>>> AjaxPageNameComponentEventResu******ltProcessor.java:29) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxComponentInstanceEventResu******ltProcessor.****** >>>> processResultValue(** >>>> AjaxComponentInstanceEventResu******ltProcessor.java:56) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxComponentInstanceEventResu******ltProcessor.****** >>>> processResultValue(** >>>> AjaxComponentInstanceEventResu******ltProcessor.java:30) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxComponentEventRequestHandl******er$1.processResultValue(** >>>> AjaxComponentEventRequestHandl******er.java:80) >>>> org.apache.tapestry5.internal.******services.** >>>> ComponentResultProcessorWrappe******r.handleResult(** >>>> ComponentResultProcessorWrappe******r.java:47) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl$6.******handleResult(**** >>>> ComponentPageElementImpl.java: >>>> **1084) >>>> org.apache.tapestry5.internal.**** >>>> **services.EventImpl$1.invoke(****** >>>> EventImpl.java:89) >>>> org.apache.tapestry5.internal.**** >>>> **services.EventImpl$1.invoke(****** >>>> EventImpl.java:86) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementResourcesI******mpl.invoke(** >>>> ComponentPageElementResourcesI******mpl.java:146) >>>> org.apache.tapestry5.internal.******services.EventImpl.** >>>> storeResult(EventImpl.java:84) >>>> be.mysite.pages.Dashboard.******dispatchComponentEvent(** >>>> Dashboard.java) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl.******dispatchEvent(**** >>>> ComponentPageElementImpl.java:***** >>>> *927) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl.******processEventTriggering(** >>>> ComponentPageElementImpl.java:******1112) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl.******access$3100(**** >>>> ComponentPageElementImpl.java:****** >>>> 61) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl$5.******invoke(****** >>>> ComponentPageElementImpl.java: >>>> **** >>>> 1057) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl$5.******invoke(****** >>>> ComponentPageElementImpl.java: >>>> **** >>>> 1054) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementResourcesI******mpl.invoke(** >>>> ComponentPageElementResourcesI******mpl.java:146) >>>> org.apache.tapestry5.internal.******structure.** >>>> ComponentPageElementImpl.******triggerContextEvent(** >>>> ComponentPageElementImpl.java:******1053) >>>> org.apache.tapestry5.internal.******structure.** >>>> InternalComponentResourcesImpl******.triggerContextEvent(** >>>> InternalComponentResourcesImpl******.java:302) >>>> org.apache.tapestry5.internal.**** >>>> **services.PageActivatorImpl.****** >>>> activatePage(******PageActivatorImpl.java:34) >>>> org.apache.tapestry5.internal.******services.** >>>> AjaxComponentEventRequestHandl******er.handle(**** >>>> AjaxComponentEventRequestHandl >>>> **er.java:89) >>>> org.apache.tapestry5.internal.******services.ajax.** >>>> AjaxFormUpdateFilter.handle(******AjaxFormUpdateFilter.java:**56) >>>> org.apache.tapestry5.internal.**** >>>> **services.AjaxFilter.handle(****** >>>> AjaxFilter.java:42) >>>> org.apache.tapestry5.upload.******internal.services.** >>>> UploadExceptionFilter.handle(******UploadExceptionFilter.java:****75) >>>> org.apache.tapestry5.services.** >>>> ****TapestryModule$41.handle(**** >>>> TapestryModule.java:2476) >>>> org.apache.tapestry5.internal.******services.** >>>> ComponentRequestHandlerTermina******tor.handleComponentEvent(**** >>>> ComponentRequestHandlerTermina******tor.java:43) >>>> org.apache.tapestry5.services.** >>>> ****InitializeActivePageName.**** >>>> handleComponentEvent(******InitializeActivePageName.java:******39) >>>> org.lazan.t5.cometd.services.******internal.** >>>> ComponentJSONRendererImpl$1.******invoke(****** >>>> ComponentJSONRendererImpl.** >>>> java:83) >>>> org.apache.tapestry5.ioc.******internal.services.** >>>> ParallelExecutorImpl$1.call(******ParallelExecutorImpl.java:**58) >>>> java.util.concurrent.******FutureTask$Sync.innerRun(** >>>> FutureTask.java:334) >>>> java.util.concurrent.******FutureTask.run(FutureTask.**** >>>> java:166) >>>> java.util.concurrent.******ThreadPoolExecutor.runWorker(*** >>>> *** >>>> ThreadPoolExecutor.java:1145) >>>> java.util.concurrent.******ThreadPoolExecutor$Worker.run(** >>>> **** >>>> ThreadPoolExecutor.java:615) >>>> java.lang.Thread.run(Thread.******java:722) >>>> >>>> Tapestry Framework >>>> >>>> Any ideas on how to fix this? >>>> I think it is becous of the onPassivate inside the page i want to embed >>>> it >>>> in. >>>> >>>> Greets >>>> >>>> -----Oorspronkelijk bericht----- From: Taha Siddiqi >>>> Sent: Thursday, April 4, 2013 4:37 PM >>>> To: Tapestry users >>>> Subject: Re: Live support solution >>>> >>>> I recently worked on a tapestry + cometd project. I didn't use the >>>> module. >>>> Just created a simple integration and then used standard cometd library >>>> documentation to create a full chat app. It was easy and I am more than >>>> satisfied with the result. >>>> >>>> For integration you can have a look at >>>> >>>> http://tawus.wordpress.com/******2011/06/13/tapestry-magic-15-******<http://tawus.wordpress.com/****2011/06/13/tapestry-magic-15-****> >>>> <http://tawus.wordpress.**com/**2011/06/13/tapestry-**magic-15-**<http://tawus.wordpress.com/**2011/06/13/tapestry-magic-15-**> >>>> > >>>> integration-with-cometd/<http:****//tawus.wordpress.com/2011/**06/**<http://tawus.wordpress.com/2011/06/**> >>>> 13/tapestry-magic-15-****integration-with-cometd/<http:** >>>> //tawus.wordpress.com/2011/06/**13/tapestry-magic-15-** >>>> integration-with-cometd/<http://tawus.wordpress.com/2011/06/13/tapestry-magic-15-integration-with-cometd/> >>>> > >>>> > >>>> >>>> regards >>>> Taha >>>> >>>> On Apr 4, 2013, at 6:08 PM, Tom Nys wrote: >>>> >>>> First of all, i need 1 on 1 chat between a client and a person from my >>>> >>>> helpdesk. >>>>> >>>>> A lot of our system works on session variables and giving info trough >>>>> via >>>>> the url. >>>>> I found out that when tapestry-cometD is working in my sidebar (a >>>>> component) it triggers the OnPassivate function of the page it is on. >>>>> >>>>> I've had an error on encodeUrl when trying to use eventlinks in the >>>>> sidebar. (fixed this by bypassing the encodeUrl function in the >>>>> fakehtmlrequest of cometD) but this isn't a nice solution since it >>>>> might >>>>> have broken some other stuff. >>>>> >>>>> >>>>> -----Oorspronkelijk bericht----- From: Thiago H de Paula Figueiredo >>>>> Sent: Thursday, April 4, 2013 2:17 PM >>>>> To: Tapestry users >>>>> Subject: Re: Live support solution >>>>> >>>>> On Thu, 04 Apr 2013 05:20:52 -0300, Tom Nys <runesmac...@hotmail.com> >>>>> wrote: >>>>> >>>>> Hi there, >>>>> >>>>> >>>>>> >>>>>> Hi! >>>>> >>>>> I’m developing a website in tapestry and trying to implement live >>>>> >>>>> support (1 on 1). >>>>>> >>>>>> I tryed implementing tapestry-cometD but it doesn’t support some of >>>>>> the >>>>>> functions already implemented on my pages. >>>>>> >>>>>> >>>>>> Your question is too vague for us to give a good answer. What >>>>> features >>>>> do >>>>> you need? Which one of them are not implemented by tapestry-cometd? >>>>> >>>>> -- >>>>> Thiago H. de Paula Figueiredo >>>>> >>>>> ------------------------------******--------------------------**--** >>>>> --**--------- >>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.****a**pache.org< >>>>> http://apache.org**> >>>>> <users-unsubscribe@**tapestry.**apache.org<http://tapestry.apache.org> >>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org> >>>>> > >>>>> > >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>> >>>>> >>>>> ------------------------------******--------------------------**--** >>>>> --**--------- >>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.****a**pache.org< >>>>> http://apache.org**> >>>>> <users-unsubscribe@**tapestry.**apache.org<http://tapestry.apache.org> >>>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org> >>>>> > >>>>> > >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>>> >>>>> >>>>> >>>>> ------------------------------******--------------------------**--** >>>> --**--------- >>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.****a**pache.org< >>>> http://apache.org**> >>>> <users-unsubscribe@**tapestry.**apache.org <http://tapestry.apache.org> >>>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org> >>>> > >>>> > >>>> For additional commands, e-mail: users-h...@tapestry.apache.org >>>> >>>> >>>> >>>> >>> ------------------------------****----------------------------** >>> --**--------- >>> To unsubscribe, e-mail: >>> users-unsubscribe@tapestry.**a**pache.org<http://apache.org> >>> <users-unsubscribe@**tapestry.apache.org<users-unsubscr...@tapestry.apache.org> >>> > >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >>> > > ------------------------------**------------------------------**--------- > To unsubscribe, e-mail: > users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org> > For additional commands, e-mail: users-h...@tapestry.apache.org > >