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

Reply via email to