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