You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Roland Vares <Ro...@uptime.ee> on 2010/01/22 15:34:43 UTC

wicketstuff-push and component replacing

Hello,

I'm currently developing wicket based application, which displays alarms on map and allows their modification.
New alarms are sent to server through soap service and map with few other components on page for all browser clients needs to be refreshed.

I'm using wicketstuff-push for the push service implementation.
org.wicketstuff.push.timer.TimerPushService to be clear.



As an in examples I have method on wicket page which is activated when server sends notification about an event:
            // set new listener for incoming events
                                final IPushTarget pushTarget = getTimerPushService().installPush(this);
                                getPushService().addMapListener(new MapServiceListener() {
            public void onEventChange(final Event event) {
                                                                if (pushTarget.isConnected()) {
                    Label label = new Label("labelonpage","label"); //label to be replaced
                    pushTarget.addComponent(label);
                    pushTarget.trigger();
                }
                else { // remove inactive listener
                                                                                LOG.debug("Removing map listener " + this);
                                                                                getPushService().removeMapListener(this);
                                                                }
            ...

Problems start with line :
Label label = new Label("labelonpage","label");

which results with:
org.apache.wicket.WicketRuntimeException: There is no application attached to current thread btpool0-2
                at org.apache.wicket.Application.get(Application.java:179)
                at org.apache.wicket.Component.getApplication(Component.java:1323)
                at org.apache.wicket.Component.<init>(Component.java:920)

It seems that in this push method, context is lost, I have no session, request,...

Is there any way I gan regain it or make new?

Or how should I implement push service, which needs to replace some components on page?

Thanks in advance,
Roland

Re: wicketstuff-push and component replacing

Posted by vineet semwal <vi...@gmail.com>.
i can't build the wicketstuff core for last few days,i think the problem is
some projects
have their parents as 1.4-SNAPSHOT while others have their parents as
1.4.2-SNAPSHOT.

On Wed, Feb 3, 2010 at 9:59 PM, Rodolfo Hansen <kr...@gmail.com> wrote:

> The changes are in 1.4-SNAPSHOT
>
> But it seems wicketstuff isn't building the package at the moment, I will
> look into that.
>
> For now, you need to checkout the source and build it yourself.
>
> On Wed, Feb 3, 2010 at 8:21 AM, Roland4444 <ro...@gmail.com> wrote:
>
> >
> > Thank you for replying.
> >
> > As I understand you made some changes, from where can I get them.
> > Originally I used this for source:
> > http://wicketstuff.org/maven/repository/org/wicketstuff/push/1.4.1/
> >
>
>
>
> >
> > but I don't see any changes there.
> >
> > I agree on part that push service is complicated.
> > I could try comet if I'd find proper example and it would allow me to do
> > what I'd like to achieve.
> >
> > But AjaxTimeoutBehavior..did you mean AbstractAjaxTimerBehavior instead,
> as
> > I find no references to the first one? If yes, I implemented it with it
> > currently, but new alarms checking with it creates considerable traffic
> and
> > is therefore not the cleverest solution I suppose
> >
> > Roland
> >
> > Rodolfo Hansen wrote:
> > >
> > > Try now...
> > >
> > > To me, the push service is overly complicated, and you could easily get
> > > away
> > > with simply using Wicket's AjaxTimeoutBehavior as there are no
> technical
> > > advantages over the later.
> > >
> > > The comet version of push offers a couple of serious advantages for the
> > > server, and client side. Why can't you use that instead?
> > >
> > >
> > > On Tue, Jan 26, 2010 at 11:12 AM, Rodolfo Hansen <kr...@gmail.com>
> > wrote:
> > >
> > >> I have basically concentrated on the CometD Service....
> > >> This should be a simple bug to fix.
> > >>
> > >>
> > >>
> > >> On Fri, Jan 22, 2010 at 10:34 AM, Roland Vares
> > >> <Ro...@uptime.ee>wrote:
> > >>
> > >>> Hello,
> > >>>
> > >>> I'm currently developing wicket based application, which displays
> > alarms
> > >>> on map and allows their modification.
> > >>> New alarms are sent to server through soap service and map with few
> > >>> other
> > >>> components on page for all browser clients needs to be refreshed.
> > >>>
> > >>> I'm using wicketstuff-push for the push service implementation.
> > >>> org.wicketstuff.push.timer.TimerPushService to be clear.
> > >>>
> > >>>
> > >>>
> > >>> As an in examples I have method on wicket page which is activated
> when
> > >>> server sends notification about an event:
> > >>>            // set new listener for incoming events
> > >>>                                final IPushTarget pushTarget =
> > >>> getTimerPushService().installPush(this);
> > >>>                                getPushService().addMapListener(new
> > >>> MapServiceListener() {
> > >>>            public void onEventChange(final Event event) {
> > >>>                                                                if
> > >>> (pushTarget.isConnected()) {
> > >>>                    Label label = new Label("labelonpage","label");
> > >>> //label
> > >>> to be replaced
> > >>>                    pushTarget.addComponent(label);
> > >>>                    pushTarget.trigger();
> > >>>                }
> > >>>                else { // remove inactive listener
> > >>>
> > >>>      LOG.debug("Removing map listener " + this);
> > >>>
> > >>>      getPushService().removeMapListener(this);
> > >>>                                                                }
> > >>>            ...
> > >>>
> > >>> Problems start with line :
> > >>> Label label = new Label("labelonpage","label");
> > >>>
> > >>> which results with:
> > >>> org.apache.wicket.WicketRuntimeException: There is no application
> > >>> attached
> > >>> to current thread btpool0-2
> > >>>                at
> > >>> org.apache.wicket.Application.get(Application.java:179)
> > >>>                at
> > >>> org.apache.wicket.Component.getApplication(Component.java:1323)
> > >>>                at
> > org.apache.wicket.Component.<init>(Component.java:920)
> > >>>
> > >>> It seems that in this push method, context is lost, I have no
> session,
> > >>> request,...
> > >>>
> > >>> Is there any way I gan regain it or make new?
> > >>>
> > >>> Or how should I implement push service, which needs to replace some
> > >>> components on page?
> > >>>
> > >>> Thanks in advance,
> > >>> Roland
> > >>>
> > >>
> > >>
> > >>
> > >> --
> > >> Rodolfo Hansen
> > >> CTO, KindleIT Software Development
> > >> Email: rhansen@kindleit.net
> > >> Mobile: +1 (809) 860-6669
> > >>
> > >
> > >
> > >
> > > --
> > > Rodolfo Hansen
> > > CTO, KindleIT Software Development
> > > Email: rhansen@kindleit.net
> > > Mobile: +1 (809) 860-6669
> > >
> > >
> >
> > --
> > View this message in context:
> >
> http://old.nabble.com/wicketstuff-push-and-component-replacing-tp27274128p27435497.html
> > Sent from the Wicket - User mailing list archive at Nabble.com.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>
>
> --
> Rodolfo Hansen
> CTO, KindleIT Software Development
> Email: rhansen@kindleit.net
> Mobile: +1 (809) 860-6669
>



-- 
regards,
Vineet Semwal

Re: wicketstuff-push and component replacing

Posted by Rodolfo Hansen <kr...@gmail.com>.
The changes are in 1.4-SNAPSHOT

But it seems wicketstuff isn't building the package at the moment, I will
look into that.

For now, you need to checkout the source and build it yourself.

On Wed, Feb 3, 2010 at 8:21 AM, Roland4444 <ro...@gmail.com> wrote:

>
> Thank you for replying.
>
> As I understand you made some changes, from where can I get them.
> Originally I used this for source:
> http://wicketstuff.org/maven/repository/org/wicketstuff/push/1.4.1/
>



>
> but I don't see any changes there.
>
> I agree on part that push service is complicated.
> I could try comet if I'd find proper example and it would allow me to do
> what I'd like to achieve.
>
> But AjaxTimeoutBehavior..did you mean AbstractAjaxTimerBehavior instead, as
> I find no references to the first one? If yes, I implemented it with it
> currently, but new alarms checking with it creates considerable traffic and
> is therefore not the cleverest solution I suppose
>
> Roland
>
> Rodolfo Hansen wrote:
> >
> > Try now...
> >
> > To me, the push service is overly complicated, and you could easily get
> > away
> > with simply using Wicket's AjaxTimeoutBehavior as there are no technical
> > advantages over the later.
> >
> > The comet version of push offers a couple of serious advantages for the
> > server, and client side. Why can't you use that instead?
> >
> >
> > On Tue, Jan 26, 2010 at 11:12 AM, Rodolfo Hansen <kr...@gmail.com>
> wrote:
> >
> >> I have basically concentrated on the CometD Service....
> >> This should be a simple bug to fix.
> >>
> >>
> >>
> >> On Fri, Jan 22, 2010 at 10:34 AM, Roland Vares
> >> <Ro...@uptime.ee>wrote:
> >>
> >>> Hello,
> >>>
> >>> I'm currently developing wicket based application, which displays
> alarms
> >>> on map and allows their modification.
> >>> New alarms are sent to server through soap service and map with few
> >>> other
> >>> components on page for all browser clients needs to be refreshed.
> >>>
> >>> I'm using wicketstuff-push for the push service implementation.
> >>> org.wicketstuff.push.timer.TimerPushService to be clear.
> >>>
> >>>
> >>>
> >>> As an in examples I have method on wicket page which is activated when
> >>> server sends notification about an event:
> >>>            // set new listener for incoming events
> >>>                                final IPushTarget pushTarget =
> >>> getTimerPushService().installPush(this);
> >>>                                getPushService().addMapListener(new
> >>> MapServiceListener() {
> >>>            public void onEventChange(final Event event) {
> >>>                                                                if
> >>> (pushTarget.isConnected()) {
> >>>                    Label label = new Label("labelonpage","label");
> >>> //label
> >>> to be replaced
> >>>                    pushTarget.addComponent(label);
> >>>                    pushTarget.trigger();
> >>>                }
> >>>                else { // remove inactive listener
> >>>
> >>>      LOG.debug("Removing map listener " + this);
> >>>
> >>>      getPushService().removeMapListener(this);
> >>>                                                                }
> >>>            ...
> >>>
> >>> Problems start with line :
> >>> Label label = new Label("labelonpage","label");
> >>>
> >>> which results with:
> >>> org.apache.wicket.WicketRuntimeException: There is no application
> >>> attached
> >>> to current thread btpool0-2
> >>>                at
> >>> org.apache.wicket.Application.get(Application.java:179)
> >>>                at
> >>> org.apache.wicket.Component.getApplication(Component.java:1323)
> >>>                at
> org.apache.wicket.Component.<init>(Component.java:920)
> >>>
> >>> It seems that in this push method, context is lost, I have no session,
> >>> request,...
> >>>
> >>> Is there any way I gan regain it or make new?
> >>>
> >>> Or how should I implement push service, which needs to replace some
> >>> components on page?
> >>>
> >>> Thanks in advance,
> >>> Roland
> >>>
> >>
> >>
> >>
> >> --
> >> Rodolfo Hansen
> >> CTO, KindleIT Software Development
> >> Email: rhansen@kindleit.net
> >> Mobile: +1 (809) 860-6669
> >>
> >
> >
> >
> > --
> > Rodolfo Hansen
> > CTO, KindleIT Software Development
> > Email: rhansen@kindleit.net
> > Mobile: +1 (809) 860-6669
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/wicketstuff-push-and-component-replacing-tp27274128p27435497.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>


-- 
Rodolfo Hansen
CTO, KindleIT Software Development
Email: rhansen@kindleit.net
Mobile: +1 (809) 860-6669

Re: wicketstuff-push and component replacing

Posted by Roland4444 <ro...@gmail.com>.
Thank you for replying.

As I understand you made some changes, from where can I get them.
Originally I used this for source:
http://wicketstuff.org/maven/repository/org/wicketstuff/push/1.4.1/

but I don't see any changes there.

I agree on part that push service is complicated.
I could try comet if I'd find proper example and it would allow me to do
what I'd like to achieve.

But AjaxTimeoutBehavior..did you mean AbstractAjaxTimerBehavior instead, as
I find no references to the first one? If yes, I implemented it with it
currently, but new alarms checking with it creates considerable traffic and
is therefore not the cleverest solution I suppose

Roland

Rodolfo Hansen wrote:
> 
> Try now...
> 
> To me, the push service is overly complicated, and you could easily get
> away
> with simply using Wicket's AjaxTimeoutBehavior as there are no technical
> advantages over the later.
> 
> The comet version of push offers a couple of serious advantages for the
> server, and client side. Why can't you use that instead?
> 
> 
> On Tue, Jan 26, 2010 at 11:12 AM, Rodolfo Hansen <kr...@gmail.com> wrote:
> 
>> I have basically concentrated on the CometD Service....
>> This should be a simple bug to fix.
>>
>>
>>
>> On Fri, Jan 22, 2010 at 10:34 AM, Roland Vares
>> <Ro...@uptime.ee>wrote:
>>
>>> Hello,
>>>
>>> I'm currently developing wicket based application, which displays alarms
>>> on map and allows their modification.
>>> New alarms are sent to server through soap service and map with few
>>> other
>>> components on page for all browser clients needs to be refreshed.
>>>
>>> I'm using wicketstuff-push for the push service implementation.
>>> org.wicketstuff.push.timer.TimerPushService to be clear.
>>>
>>>
>>>
>>> As an in examples I have method on wicket page which is activated when
>>> server sends notification about an event:
>>>            // set new listener for incoming events
>>>                                final IPushTarget pushTarget =
>>> getTimerPushService().installPush(this);
>>>                                getPushService().addMapListener(new
>>> MapServiceListener() {
>>>            public void onEventChange(final Event event) {
>>>                                                                if
>>> (pushTarget.isConnected()) {
>>>                    Label label = new Label("labelonpage","label");
>>> //label
>>> to be replaced
>>>                    pushTarget.addComponent(label);
>>>                    pushTarget.trigger();
>>>                }
>>>                else { // remove inactive listener
>>>
>>>      LOG.debug("Removing map listener " + this);
>>>
>>>      getPushService().removeMapListener(this);
>>>                                                                }
>>>            ...
>>>
>>> Problems start with line :
>>> Label label = new Label("labelonpage","label");
>>>
>>> which results with:
>>> org.apache.wicket.WicketRuntimeException: There is no application
>>> attached
>>> to current thread btpool0-2
>>>                at
>>> org.apache.wicket.Application.get(Application.java:179)
>>>                at
>>> org.apache.wicket.Component.getApplication(Component.java:1323)
>>>                at org.apache.wicket.Component.<init>(Component.java:920)
>>>
>>> It seems that in this push method, context is lost, I have no session,
>>> request,...
>>>
>>> Is there any way I gan regain it or make new?
>>>
>>> Or how should I implement push service, which needs to replace some
>>> components on page?
>>>
>>> Thanks in advance,
>>> Roland
>>>
>>
>>
>>
>> --
>> Rodolfo Hansen
>> CTO, KindleIT Software Development
>> Email: rhansen@kindleit.net
>> Mobile: +1 (809) 860-6669
>>
> 
> 
> 
> -- 
> Rodolfo Hansen
> CTO, KindleIT Software Development
> Email: rhansen@kindleit.net
> Mobile: +1 (809) 860-6669
> 
> 

-- 
View this message in context: http://old.nabble.com/wicketstuff-push-and-component-replacing-tp27274128p27435497.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: wicketstuff-push and component replacing

Posted by Rodolfo Hansen <kr...@gmail.com>.
Try now...

To me, the push service is overly complicated, and you could easily get away
with simply using Wicket's AjaxTimeoutBehavior as there are no technical
advantages over the later.

The comet version of push offers a couple of serious advantages for the
server, and client side. Why can't you use that instead?


On Tue, Jan 26, 2010 at 11:12 AM, Rodolfo Hansen <kr...@gmail.com> wrote:

> I have basically concentrated on the CometD Service....
> This should be a simple bug to fix.
>
>
>
> On Fri, Jan 22, 2010 at 10:34 AM, Roland Vares <Ro...@uptime.ee>wrote:
>
>> Hello,
>>
>> I'm currently developing wicket based application, which displays alarms
>> on map and allows their modification.
>> New alarms are sent to server through soap service and map with few other
>> components on page for all browser clients needs to be refreshed.
>>
>> I'm using wicketstuff-push for the push service implementation.
>> org.wicketstuff.push.timer.TimerPushService to be clear.
>>
>>
>>
>> As an in examples I have method on wicket page which is activated when
>> server sends notification about an event:
>>            // set new listener for incoming events
>>                                final IPushTarget pushTarget =
>> getTimerPushService().installPush(this);
>>                                getPushService().addMapListener(new
>> MapServiceListener() {
>>            public void onEventChange(final Event event) {
>>                                                                if
>> (pushTarget.isConnected()) {
>>                    Label label = new Label("labelonpage","label"); //label
>> to be replaced
>>                    pushTarget.addComponent(label);
>>                    pushTarget.trigger();
>>                }
>>                else { // remove inactive listener
>>
>>      LOG.debug("Removing map listener " + this);
>>
>>      getPushService().removeMapListener(this);
>>                                                                }
>>            ...
>>
>> Problems start with line :
>> Label label = new Label("labelonpage","label");
>>
>> which results with:
>> org.apache.wicket.WicketRuntimeException: There is no application attached
>> to current thread btpool0-2
>>                at org.apache.wicket.Application.get(Application.java:179)
>>                at
>> org.apache.wicket.Component.getApplication(Component.java:1323)
>>                at org.apache.wicket.Component.<init>(Component.java:920)
>>
>> It seems that in this push method, context is lost, I have no session,
>> request,...
>>
>> Is there any way I gan regain it or make new?
>>
>> Or how should I implement push service, which needs to replace some
>> components on page?
>>
>> Thanks in advance,
>> Roland
>>
>
>
>
> --
> Rodolfo Hansen
> CTO, KindleIT Software Development
> Email: rhansen@kindleit.net
> Mobile: +1 (809) 860-6669
>



-- 
Rodolfo Hansen
CTO, KindleIT Software Development
Email: rhansen@kindleit.net
Mobile: +1 (809) 860-6669

Re: wicketstuff-push and component replacing

Posted by Rodolfo Hansen <kr...@gmail.com>.
I have basically concentrated on the CometD Service....
This should be a simple bug to fix.


On Fri, Jan 22, 2010 at 10:34 AM, Roland Vares <Ro...@uptime.ee>wrote:

> Hello,
>
> I'm currently developing wicket based application, which displays alarms on
> map and allows their modification.
> New alarms are sent to server through soap service and map with few other
> components on page for all browser clients needs to be refreshed.
>
> I'm using wicketstuff-push for the push service implementation.
> org.wicketstuff.push.timer.TimerPushService to be clear.
>
>
>
> As an in examples I have method on wicket page which is activated when
> server sends notification about an event:
>            // set new listener for incoming events
>                                final IPushTarget pushTarget =
> getTimerPushService().installPush(this);
>                                getPushService().addMapListener(new
> MapServiceListener() {
>            public void onEventChange(final Event event) {
>                                                                if
> (pushTarget.isConnected()) {
>                    Label label = new Label("labelonpage","label"); //label
> to be replaced
>                    pushTarget.addComponent(label);
>                    pushTarget.trigger();
>                }
>                else { // remove inactive listener
>
>    LOG.debug("Removing map listener " + this);
>
>    getPushService().removeMapListener(this);
>                                                                }
>            ...
>
> Problems start with line :
> Label label = new Label("labelonpage","label");
>
> which results with:
> org.apache.wicket.WicketRuntimeException: There is no application attached
> to current thread btpool0-2
>                at org.apache.wicket.Application.get(Application.java:179)
>                at
> org.apache.wicket.Component.getApplication(Component.java:1323)
>                at org.apache.wicket.Component.<init>(Component.java:920)
>
> It seems that in this push method, context is lost, I have no session,
> request,...
>
> Is there any way I gan regain it or make new?
>
> Or how should I implement push service, which needs to replace some
> components on page?
>
> Thanks in advance,
> Roland
>



-- 
Rodolfo Hansen
CTO, KindleIT Software Development
Email: rhansen@kindleit.net
Mobile: +1 (809) 860-6669