The exception message is telling you that ComponentResources is not available in the registry. This service is only available for injection in components and pages.
On Fri, Aug 6, 2010 at 10:38 PM, Paul Stanton <p...@mapshed.com.au> wrote: > Thiago, > > By "declare your class as a service" do you mean bind it? ie: > > public static void bind(ServiceBinder binder) { > binder.bind(TapestryExtension.class, TapestryExtensionImpl.class); > } > > or do i need to 'contribute' it somewhere? Because it isn't working.: > > 2010-08-07 06:33:33,406 http-80-6 DEBUG > package.services.AppModule.TapestryExtension - Invoking constructor > package.services.TapestryExtensionImpl() (at TapestryExtensionImpl.java:9) > via package.services.AppModule.bind(ServiceBinder) (at AppModule.java:35). > 2010-08-07 06:33:33,421 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - No service implements the interface > org.apache.tapestry5.ComponentResources. > 2010-08-07 06:33:33,421 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - Operations trace: > 2010-08-07 06:33:33,421 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - [ 1] Realizing service > TapestryExtension > 2010-08-07 06:33:33,421 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - [ 2] Invoking > package.services.TapestryExtensionImpl() (at TapestryExtensionImpl.java:9) > via package.services.AppModule.bind(ServiceBinder) (at AppModule.java:35) > 2010-08-07 06:33:33,437 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - [ 3] Calculating injection value for > field 'resources' (org.apache.tapestry5.ComponentResources) > 2010-08-07 06:33:33,437 http-80-6 ERROR > org.apache.tapestry5.ioc.Registry - [ 4] Resolving object of type > org.apache.tapestry5.ComponentResources using MasterObjectProvider > 2010-08-07 06:33:33,453 http-80-6 ERROR > package.services.AppModule.TapestryExtension - Construction of service > TapestryExtension failed: Error invoking constructor > package.services.TapestryExtensionImpl() (at TapestryExtensionImpl.java:9) > via package.services.AppModule.bind(ServiceBinder) (at AppModule.java:35) > (for service 'TapestryExtension'): No service implements the interface > org.apache.tapestry5.ComponentResources. > java.lang.RuntimeException: Error invoking constructor > package.services.TapestryExtensionImpl() (at TapestryExtensionImpl.java:9) > via package.services.AppModule.bind(ServiceBinder) (at AppModule.java:35) > (for service 'TapestryExtension'): No service implements the interface > org.apache.tapestry5.ComponentResources. > at > org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:76) > at > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) > at > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > at > org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29) > at > org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46) > at > org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60) > at > org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52) > at > org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60) > at > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941) > at > org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49) > at > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68) > at > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:57) > at > $TapestryExtension_12a491b407b.delegate($TapestryExtension_12a491b407b.java) > at > $TapestryExtension_12a491b407b.getPage($TapestryExtension_12a491b407b.java) > Caused by: java.lang.RuntimeException: No service implements the interface > org.apache.tapestry5.ComponentResources. > at > org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:560) > at > org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:44) > at > org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:56) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68) > ... 96 more > > > > Thiago H. de Paula Figueiredo wrote: > >> On Fri, 06 Aug 2010 05:15:42 -0300, Paul Stanton <p...@mapshed.com.au> >> wrote: >> >> Hi All, >>> >> >> Hi! >> >> I've got a few things i commonly do with in the scope of a tapestry page >>> request using the tapestry built in services such as RenderSupport, >>> ComponentResources, ComponentSource and PageRenderQueue. >>> I would like to wrap these procedures in my own 'RenderSupport' type >>> service, which I intend to inject into my pages and components. >>> How do I contribute a service that has the same type of context as >>> RenderSupport etc. and that I can inject RenderSupport etc. into? >>> >> >> I don't know what do you mean by "same context". RenderSupport is a >> Tapestry-IoC service is any other. Just declare your class as a service, >> inject what is needed and you're set. >> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Best regards, Igor Drobiazko http://tapestry5.de