the activate is somthing like:

Object onActivate(context)
{
   if(context.count()>0)
       do somthing
   else
       redirect to other page
}

my onchat method is unchanged from your demo project.


I'm now trying to add an eventlink to the list of users to make 1v1 chat possible by changing the topic.

Try adding an eventlink in the loop of users in your demo project.

<t:block id="chatUsersBlock">
   <ul>
       <t:loop source="chatUsers" value="currentUser">
<li><t:eventlink event="user" context="${currentUser}">${currentUser}</eventlink></li>
       </t:loop>
   </ul>
</t:block>

and in java

void onUser(String user){
   system.out.println(user)
}

this also gives the encodeURL error. (is this the same error as what you said?)

any other idea on how to do this?

-----Oorspronkelijk bericht----- From: Lance Java
Sent: Tuesday, April 23, 2013 10:24 AM
To: Tapestry users
Subject: Re: Live support solution

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




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to