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 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/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-**> >> 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<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.**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 > >