I'm currently looking into how tacos works within portlets.

After solving some minor issues, I got into this:
I got a "no ajaxdirect service defined" exception.
In order to see what was happenning, I patched Tapestry's
org.apache.tapestry.services.impl.ServiceMapImpl and made it printout
all available services when its getService(String) was
called.
During a single portlet page rendering I got this output:

direct action xtile render exception asset restart page reset external home
direct action xtile render exception asset restart page reset external home
... (the same, at least 10 more times)
direct action xtile asset restart page reset external ajaxdirect home
direct action xtile asset restart page reset external ajaxdirect home
direct action xtile asset restart page reset external ajaxdirect home
... (the same, at least 4 more times)

On the other hand, in servlet mode, all of those service are always
available.

I don't really know:
a) why there's this diff between portlet and servlet behaviour, and
b) what triggers some services to become available later on (but always
during the same
page render) in portlet mode and what triggers some to disappear (i.e.
the render or
the exception services).

My current theory is that services contributed from anywhere to
ApplicationServices
and services contributed from within Tapestry's module to
FactoryServices are always available.
Contrary, external services contributed to FactoryServices are not
always there.

Anyway, I thought I'd report this since it may be a source of potential
bugs (at least in portlets)

PS. Regarding tacos, the ajaxdirect was indeed contributed to
FactoryServices and
switching this to ApplicationServices made it work.


 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to