[Zope3-Users] Registered utility is never found
Tom Dossis
td at yoma.com.au
Mon Dec 11 15:56:53 EST 2006
FB wrote:
> Hi,
>
> is there any reason why a registered utility which is persistently stored inside the site
> manager is never found via zapi.getUtility(IMyInterface) ?
>
> More information:
>
> I wrote a package ( fb ) containing some components making the developer's life easier. The package
> provides a class fb.init.indicator.InitIndicator. A application depending on the fb package is
> supposed to make an instance of the InitIndicator, put it into the site manager and register it.
>
> As soon as the InitIndicator exists, the annoying "This site is not
> initialized, yet"-message provided by the fb package's skin (which just
> checks if "zapi.getUtility(IInitIndicator) is not None") disappears.
>
> But: It *doesn't work* and a don't have the slightest clue why. This is,
> what my application's initialisation routine does:
>
>
> def initApplication(root):
> sm=getSiteManager()
> df=sm['default']
> initindicator=InitIndicator('mpgsite','http://zope3.mpg.de/topic/MpgSite',u"no info")
> df['initindicator']=initindicator
> sm.registerUtility(df['initindicator'],IInitIndicator,'','')
> [...]
> test=zapi.getUtility(IInitIndicator) # Works!
> [...]
>
> Querying the IInitIndicator component works directly after the registration
> but *nowhere* else in my application.
>
Have you 'browsed' the utility via the ZMI 'Manage Site'?
Is there an instance there (in the site you expect it to be)?
If so the 'Registration' page could provide some useful info.
Regards,
-Tom
More information about the Zope3-users
mailing list