That's all the source for My.java. Tapestry version is 5.3
I intend to upgrade to the latest version very soon anyway.

On Wed, Jun 13, 2012 at 11:17 PM, Howard Lewis Ship <hls...@gmail.com>wrote:

> What version of Tapestry is this?  Can we see more source for
> com.skycomm.charts.My?
>
>
>
>
> On Wed, Jun 13, 2012 at 11:41 AM, Muhammad Gelbana <m.gelb...@gmail.com
> >wrote:
>
> > The exception shows that I'm importing "org.apache.log4j.Logger" which
> is a
> > mistake but the same happens if I fix the import to become
> > "org.slf4j.Logger"
> >
> > The long exception stack trace again:
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:127)-[main] No service
> > implements the interface *org.slf4j.Logger*.
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:128)-[main] Operations
> > trace:
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 1]
> > Realizing service RegistryStartup
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 2]
> > Instantiating service RegistryStartup implementation via
> > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, List)
> > (at RegistryStartup.java:36) via
> > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder)
> (at
> > TapestryIOCModule.java:49)
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 3]
> > Creating plan to instantiate
> > org.apache.tapestry5.ioc.internal.services.RegistryStartup via public
> >
> >
> org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List)
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 4]
> > Determining injection value for parameter #2 (java.util.List)
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 5]
> > Collecting ordered configuration for service RegistryStartup
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 6]
> > Invoking
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > Logger) (at AppModule.java:315)
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 7]
> > Reloading class com.skycomm.charts.My.
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 8]
> > Creating plan to instantiate com.skycomm.charts.My via public
> > com.skycomm.charts.My()
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [ 9]
> > Calculating possible injection value for field com.skycomm.charts.My.log
> > (org.slf4j.Logger)
> > 13-06-12 20:39:21 ERROR (OperationTrackerImpl.java:137)-[main] [10]
> > Resolving object of type org.slf4j.Logger using MasterObjectProvider
> > 13-06-12 20:39:23 ERROR
> > (RecursiveServiceCreationCheckWrapper.java:64)-[main] Construction of
> > service RegistryStartup failed: Error invoking service contribution
> method
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > Logger): No service implements the interface org.slf4j.Logger.
> > java.lang.RuntimeException: Error invoking service contribution method
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > Logger): No service implements the interface org.slf4j.Logger.
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
> > at
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:630)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:626)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:480)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > 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:63)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> > 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:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> > at $Runnable_1a59e03880f0.delegate(Unknown Source)
> > at $Runnable_1a59e03880f0.run(Unknown Source)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
> > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
> > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at
> >
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> > at
> >
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> > at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> > at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> > at org.mortbay.jetty.Server.doStart(Server.java:224)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at runjettyrun.Bootstrap.main(Bootstrap.java:82)
> > Caused by: org.apache.tapestry5.ioc.internal.OperationException: No
> service
> > implements the interface org.slf4j.Logger.
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45)
> > at $MasterObjectProvider_1a59e03880c0.provide(Unknown Source)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$25.run(InternalUtils.java:1567)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
> > at
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.extendPlanForInjectedFields(InternalUtils.java:1534)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$200(InternalUtils.java:50)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1496)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ReloadableServiceImplementationObjectCreator.createInstance(ReloadableServiceImplementationObjectCreator.java:52)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator$1.invoke(AbstractReloadableObjectCreator.java:127)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createInstance(AbstractReloadableObjectCreator.java:121)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createObject(AbstractReloadableObjectCreator.java:113)
> > at $IMyInterface_1a59e0388101.delegate(Unknown Source)
> > at $IMyInterface_1a59e0388101.a(Unknown Source)
> > at $IMyInterface_1a59e03880fc.a(Unknown Source)
> > at
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(AppModule.java:316)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:597)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:120)
> > ... 69 more
> > Caused by: java.lang.RuntimeException: No service implements the
> interface
> > org.slf4j.Logger.
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAlone(RegistryImpl.java:661)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAndMarkers(RegistryImpl.java:681)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:640)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:47)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:60)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > ... 108 more
> > 2012-06-13 20:39:23.578:WARN::failed app: java.lang.RuntimeException:
> > Exception constructing service 'RegistryStartup': Error invoking service
> > contribution method
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > Logger): No service implements the interface org.slf4j.Logger.
> > 2012-06-13 20:39:23.578:WARN::Failed startup of context
> > org.mortbay.jetty.webapp.WebAppContext@5fb57890
> > {/,E:\Workspace\Eclipse\IpKaizen
> > - Web\src\main\webapp}
> > java.lang.RuntimeException: Exception constructing service
> > 'RegistryStartup': Error invoking service contribution method
> >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > Logger): No service implements the interface org.slf4j.Logger.
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> > at $Runnable_1a59e03880f0.delegate(Unknown Source)
> > at $Runnable_1a59e03880f0.run(Unknown Source)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
> > at
> >
> >
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
> > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
> > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at
> >
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> > at
> >
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> > at
> > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> > at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at
> > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> > at org.mortbay.jetty.Server.doStart(Server.java:224)
> > at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > at runjettyrun.Bootstrap.main(Bootstrap.java:82)
> >
> >
> > On Wed, Jun 13, 2012 at 8:24 PM, Muhammad Gelbana <m.gelb...@gmail.com
> > >wrote:
> >
> > > The is nothing really to show.
> > >
> > > *My*
> > > package com.skycomm.charts;
> > > import javax.inject.Inject;
> > > import org.apache.log4j.Logger;
> > >
> > > public class My implements IMyInterface {
> > >     @Inject
> > >     private Logger log;
> > >
> > >     public My() {
> > >         System.out.println(log);
> > >         log.info("Logger injected in service using
> > @javax.inject.Inject");
> > >     }
> > >
> > >     @Override
> > >     public void a() {
> > >         System.out.println("a");
> > >     }
> > > };
> > >
> > > *IMyInterface*
> > > package com.skycomm.charts;
> > > public interface IMyInterface {
> > >     void a();
> > > }
> > >
> > > *AppModule portion*
> > > public void contributeRegistryStartup(OrderedConfiguration<Runnable>
> > > configuration, final Logger log) {
> > >  m.a();
> > > // Other stuff
> > > }
> > >
> > > *AppModule bind method*
> > > public static void bind(ServiceBinder binder) {
> > >  //Many other binds
> > > binder.bind(IMyInterface.class, My.class); //I originally had it with
> > > .eagerLoad() because that's what I actually need, but I removed it
> after
> > I
> > > suspected it to be causing the probelem, although now after I removed
> it,
> > > it still happens.
> > > }
> > >
> > > *Very long exception*
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:127)-[main] No
> service
> > > implements the interface org.apache.log4j.Logger.
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:128)-[main]
> Operations
> > > trace:
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 1]
> > > Realizing service RegistryStartup
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 2]
> > > Instantiating service RegistryStartup implementation via
> > > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger,
> List)
> > > (at RegistryStartup.java:36) via
> > > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder)
> > (at
> > > TapestryIOCModule.java:49)
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 3]
> > > Creating plan to instantiate
> > > org.apache.tapestry5.ioc.internal.services.RegistryStartup via public
> > >
> >
> org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List)
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 4]
> > > Determining injection value for parameter #2 (java.util.List)
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 5]
> > > Collecting ordered configuration for service RegistryStartup
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 6]
> > > Invoking
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > > Logger) (at AppModule.java:315)
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 7]
> > > Reloading class com.skycomm.charts.My.
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 8]
> > > Creating plan to instantiate com.skycomm.charts.My via public
> > > com.skycomm.charts.My()
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [ 9]
> > > Calculating possible injection value for field
> com.skycomm.charts.My.log
> > > (org.apache.log4j.Logger)
> > > 13-06-12 20:15:34 ERROR (OperationTrackerImpl.java:137)-[main] [10]
> > > Resolving object of type org.apache.log4j.Logger using
> > MasterObjectProvider
> > > 13-06-12 20:15:36 ERROR
> > > (RecursiveServiceCreationCheckWrapper.java:64)-[main] Construction of
> > > service RegistryStartup failed: Error invoking service contribution
> > method
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > > Logger): No service implements the interface org.apache.log4j.Logger.
> > > java.lang.RuntimeException: Error invoking service contribution method
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > > Logger): No service implements the interface org.apache.log4j.Logger.
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:630)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:626)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:480)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > >  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:63)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> > > 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:74)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> > > at $Runnable_190859b1af3c.delegate(Unknown Source)
> > >  at $Runnable_190859b1af3c.run(Unknown Source)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
> > > at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
> > >  at
> org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> > > at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > >  at
> > >
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> > > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> > >  at
> > >
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> > > at
> > >
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> > >  at
> > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> > > at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > >  at
> > >
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> > > at org.mortbay.jetty.Server.doStart(Server.java:224)
> > >  at
> > >
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > > at runjettyrun.Bootstrap.main(Bootstrap.java:82)
> > > Caused by: org.apache.tapestry5.ioc.internal.OperationException: No
> > > service implements the interface org.apache.log4j.Logger.
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:45)
> > >  at $MasterObjectProvider_190859b1af08.provide(Unknown Source)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:868)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:57)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$25.run(InternalUtils.java:1567)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1116)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.extendPlanForInjectedFields(InternalUtils.java:1534)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$200(InternalUtils.java:50)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1496)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ReloadableServiceImplementationObjectCreator.createInstance(ReloadableServiceImplementationObjectCreator.java:52)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator$1.invoke(AbstractReloadableObjectCreator.java:127)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createInstance(AbstractReloadableObjectCreator.java:121)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createObject(AbstractReloadableObjectCreator.java:113)
> > >  at $IMyInterface_190859b1af49.delegate(Unknown Source)
> > > at $IMyInterface_190859b1af49.a(Unknown Source)
> > >  at $IMyInterface_190859b1af44.a(Unknown Source)
> > > at
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(AppModule.java:316)
> > >  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > at
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > >  at
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > > at java.lang.reflect.Method.invoke(Method.java:597)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:120)
> > > ... 69 more
> > > Caused by: java.lang.RuntimeException: No service implements the
> > interface
> > > org.apache.log4j.Logger.
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAlone(RegistryImpl.java:661)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getServiceByTypeAndMarkers(RegistryImpl.java:681)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:640)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:47)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:60)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> > > ... 108 more
> > > 2012-06-13 20:15:36.602:WARN::failed app: java.lang.RuntimeException:
> > > Exception constructing service 'RegistryStartup': Error invoking
> service
> > > contribution method
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > > Logger): No service implements the interface org.apache.log4j.Logger.
> > > 2012-06-13 20:15:36.602:WARN::Failed startup of context
> > > org.mortbay.jetty.webapp.WebAppContext@428c6e04
> > {/,E:\Workspace\Eclipse\IpKaizen
> > > - Web\src\main\webapp}
> > > java.lang.RuntimeException: Exception constructing service
> > > 'RegistryStartup': Error invoking service contribution method
> > >
> >
> com.skycomm.cth.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> > > Logger): No service implements the interface org.apache.log4j.Logger.
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> > >  at $Runnable_190859b1af3c.delegate(Unknown Source)
> > > at $Runnable_190859b1af3c.run(Unknown Source)
> > >  at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
> > > at
> > >
> >
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
> > >  at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
> > > at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> > >  at
> > >
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > > at
> > >
> >
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> > >  at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> > > at
> > >
> >
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> > >  at
> > >
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> > > at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> > >  at
> > >
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > > at
> > >
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> > >  at org.mortbay.jetty.Server.doStart(Server.java:224)
> > > at
> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> > >  at runjettyrun.Bootstrap.main(Bootstrap.java:82)
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Wed, Jun 13, 2012 at 6:27 PM, Howard Lewis Ship <hls...@gmail.com
> > >wrote:
> > >
> > >> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <
> m.gelb...@gmail.com>
> > >> wrote:
> > >> > I faced the same problem and I'm using the constructor's injection
> > >> instead.
> > >> > But why wouldn't the deprecated @InjectResource nor the @Inject
> > >> annotation
> > >> > work ? I'm using tapestry5.3.1
> > >>
> > >> Without seeing the code, there's no way to answer.
> > >>
> > >> http://catb.org/esr/faqs/smart-questions.html
> > >>
> > >> >
> > >> > On Wed, Dec 29, 2010 at 1:33 AM, Howard Lewis Ship <
> hls...@gmail.com>
> > >> wrote:
> > >> >
> > >> >> You're seeing the evolution of the framework.
> > >> >>
> > >> >> Originally, there was only constructor injection for services.
>  This
> > is
> > >> >> because we did not, originally, use a special class loader for
> > service
> > >> >> implementations and we were trying to avoid reflection.
> > >> >>
> > >> >> Components always used a special class loader, which allowed for
> > proper
> > >> >> injection (including intercepting attempted updates to the fields,
> to
> > >> make
> > >> >> the read-only).
> > >> >>
> > >> >> Later (5.1 I believe) we started allowing injection into fields of
> > >> service
> > >> >> implementation, using reflection.
> > >> >>
> > >> >> However, there's an ambiguity.  Normally, once Tapestry selects a
> > >> >> constructor, it provides an injection value for each parameter,
> based
> > >> on
> > >> >> type (and other annotation).
> > >> >>
> > >> >> Normally, a component parameter of type Logger is recognized, by
> > type,
> > >> as a
> > >> >> service resource (i.e., not another service, but a unique value
> > >> constructed
> > >> >> just for this service).  Adding the @Inject annotation tells
> Tapestry
> > >> to
> > >> >> ignore it as a service resource and resolve it as an ordinary
> > injection
> > >> >> (i.e., a service, or an object obtained from the
> > MasterObjectProvider).
> > >> >>
> > >> >> For fields, each field needs an @Inject annotation (Tapestry
> ignores
> > >> most
> > >> >> fields and only performs injection on the ones that need it).  But
> > >> >> that ambiguity ... @Inject should also work the same for a field as
> > it
> > >> does
> > >> >> for a parameter (meaning, resolve as a service, not a resource).
>  The
> > >> >> solution was yet another annotation, @InjectResource, which is only
> > for
> > >> >> fields, and indicates that Tapestry should perform a resource
> > >> injection on
> > >> >> the field, as it would for a constructor parameter.
> > >> >>
> > >> >> Confusing?  Yes, just a touch. It's one of the reasons I prefer
> > >> constructor
> > >> >> injection.
> > >> >>
> > >> >> On Tue, Dec 28, 2010 at 3:15 PM, Thiago H. de Paula Figueiredo <
> > >> >> thiag...@gmail.com> wrote:
> > >> >>
> > >> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> > >> >> joshcanfi...@gmail.com>
> > >> >> > wrote:
> > >> >> >
> > >> >> >  Weird. Has that always been true?
> > >> >> >>
> > >> >> >
> > >> >> > No. I can't remember when, though.
> > >> >> >
> > >> >> >
> > >> >> >  I'm also confused
> > >> >> >> why @Inject would work with Logger in a Component, but not in a
> > >> service.
> > >> >> >>
> > >> >> >
> > >> >> > Injection of some object types are handled by class
> > transformations,
> > >> not
> > >> >> > IoC.
> > >> >> >
> > >> >> >
> > >> >> > --
> > >> >> > Thiago H. de Paula Figueiredo
> > >> >> > Independent Java, Apache Tapestry 5 and Hibernate consultant,
> > >> developer,
> > >> >> > and instructor
> > >> >> > Owner, Ars Machina Tecnologia da Informação Ltda.
> > >> >> > http://www.arsmachina.com.br
> > >> >> >
> > >> >> >
> > ---------------------------------------------------------------------
> > >> >> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > >> >> > For additional commands, e-mail: users-h...@tapestry.apache.org
> > >> >> >
> > >> >> >
> > >> >>
> > >> >>
> > >> >> --
> > >> >> Howard M. Lewis Ship
> > >> >>
> > >> >> Creator of Apache Tapestry
> > >> >>
> > >> >> The source for Tapestry training, mentoring and support. Contact me
> > to
> > >> >> learn
> > >> >> how I can get you up and productive in Tapestry fast!
> > >> >>
> > >> >> (971) 678-5210
> > >> >> http://howardlewisship.com
> > >> >>
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > *Regards,*
> > >> > *Muhammad Gelbana
> > >> > Java Developer*
> > >>
> > >>
> > >>
> > >> --
> > >> Howard M. Lewis Ship
> > >>
> > >> Creator of Apache Tapestry
> > >>
> > >> The source for Tapestry training, mentoring and support. Contact me to
> > >> learn how I can get you up and productive in Tapestry fast!
> > >>
> > >> (971) 678-5210
> > >> http://howardlewisship.com
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > >> For additional commands, e-mail: users-h...@tapestry.apache.org
> > >>
> > >>
> > >
> > >
> > > --
> > > *Regards,*
> > > *Muhammad Gelbana
> > > Java Developer*
> > >
> > >
> >
> >
> > --
> > *Regards,*
> > *Muhammad Gelbana
> > Java Developer*
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
>



-- 
*Regards,*
*Muhammad Gelbana
Java Developer*

Reply via email to