You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Muhammad Gelbana <m....@gmail.com> on 2012/06/13 16:12:37 UTC

Re: Problem injecting a Logger

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

On Wed, Dec 29, 2010 at 1:33 AM, Howard Lewis Ship <hl...@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 <
> thiagohp@gmail.com> wrote:
>
> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> joshcanfield@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-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@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*

Re: Problem injecting a Logger

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Thu, 14 Jun 2012 14:00:05 -0300, Muhammad Gelbana <m....@gmail.com>  
wrote:

> public class *AppModule* {
>
> @Inject
> private IMy my;

Why this field exists?

> public static void bind(ServiceBinder binder) {
> binder.bind(IMy.class, My.class);
> }

Ok.

> public void contributeRegistryStartup(OrderedConfiguration<Runnable>
> configuration, final Logger log) {
> my.a();
> }
> }

Why do you have a contribute method that doesn't actually contributes to  
the RegistryStartup configuration? It doesn't make sense.

You could do this instead to avoid the 'my' field:

public void contributeRegistryStartup(OrderedConfiguration<Runnable>  
configuration, final Logger log, IMy my) {
	...
}

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
Is this the method responsible for injecting instance fields within
services ?
*org.apache.tapestry5.ioc.internal.util.InternalUtils.injectIntoFields(Object,
ObjectLocator, InjectionResources, OperationTracker)*

If it is,
if (ap.getAnnotation(Inject.class) != null ||
ap.getAnnotation(InjectResource.class) != null)
{
          Object value = resources.*findResource*(fieldType,
f.getGenericType()); //
          if (value != null)
          {
                    inject(object, f, value);
                    return;
          }
          inject(object, f, locator.getObject(fieldType, ap));
          return;
}
if (ap.getAnnotation(javax.inject.Inject.class) != null)
{
          Named named = ap.getAnnotation(Named.class);
          if (named == null)
          {
                    inject(object, f, locator.getObject(fieldType, ap));
          } else
          {
                    inject(object, f, locator.getService(named.value(),
fieldType));
          }
          return;
}

If I didn't miss anything, and there is a huge chance I did because I don't
know about tapestry's internals, I guess that only tapestry's @Inject and
@InjectResource annotations are used to inject resources like
org.slf4j.Logger. Even after a quick look at the whole class, I can say
that injecting resources is only provided if tapestry's @Inject or
@InjectResource is on the field to be injected.

This class looks like it's treating tapestry's @Inject and java's exactly
the same but I think it's only concerned with transformable classes such as
components and pages.
*org.apache.tapestry5.internal.transform.InjectWorker*

On Thu, Jun 14, 2012 at 11:20 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> I only provided abstract proofs for what I'm trying to question, not the
> whole thing of course as not to distract anyone away from the main point.
> I guess now the only thing is left is the difference between tapestry's
> @Inject and java's. I know Howard disagrees with that, did anyone else
> notice such a difference with injection ? field injection to be specific.
>
>
> On Thu, Jun 14, 2012 at 11:16 PM, Thiago H de Paula Figueiredo <
> thiagohp@gmail.com> wrote:
>
>> On Thu, 14 Jun 2012 17:42:33 -0300, Muhammad Gelbana <m....@gmail.com>
>> wrote:
>>
>>  *- Do you know you can use injection (no annotations needed) in build,
>>> contribute and advise methods in Tapestry-IoC module classes? ;) *
>>>
>>> You mean in the method signature ?
>>>
>>
>> Yes.
>>
>>
>>  It's of course different from injecting services in the module
>>>
>>
>> No difference.
>>
>>
>>  but how is it different tapestry-wise ?
>>>
>>
>> Just two different ways to get access to services. No difference
>> Tapestry-wise. If you're going to use a service in just one or two methods
>> in your module class, I'd use injection in their parameters. Otherwise,
>> field injection.
>>
>>  *- Another option is to contribute to the RegistryStartup configuration a
>>>
>>> Runnable that invokes your service. Just calling it directly in
>>> contributeRegistryStartup() makes the call to happen before the registry
>>> was actually started up. *
>>>
>>> Well that is what I'm actually doing.
>>>
>>
>> The code you provided us tells that's *not* what you're doing.
>>
>>
>>  Only that I'm injecting services in
>>> the module, while it looks like injecting the service through the
>>> contribute method signature is a better practice.
>>>
>>
>> It isn't a better practice, just a different way of doing the same thing.
>> Your module class, as posted here, had just one use of the service, so the
>> most appropriate way of injecting it, IMHO, was in the method signature.
>>
>>  Also you are saying that the runnable will run *before* the registry
>>> starts up, isn't that a problem if I'm calling injected services ? I know
>>> it isn't as I'm already doing it.
>>>
>>
>> The code you provided does *not* use a Runnable, so I what I wrote was
>> based on it. If your code actually invokes the service inside a Runnable
>> contributed to the RegistryStartup service configuration, then it was right
>> but, again, that's not what you posted here.
>>
>>
>> --
>> Thiago H. de Paula Figueiredo
>>
>
>
>
> --
> *Regards,*
> *Muhammad Gelbana
> Java Developer*
>
>


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

Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
I only provided abstract proofs for what I'm trying to question, not the
whole thing of course as not to distract anyone away from the main point.
I guess now the only thing is left is the difference between tapestry's
@Inject and java's. I know Howard disagrees with that, did anyone else
notice such a difference with injection ? field injection to be specific.

On Thu, Jun 14, 2012 at 11:16 PM, Thiago H de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> On Thu, 14 Jun 2012 17:42:33 -0300, Muhammad Gelbana <m....@gmail.com>
> wrote:
>
>  *- Do you know you can use injection (no annotations needed) in build,
>> contribute and advise methods in Tapestry-IoC module classes? ;) *
>>
>> You mean in the method signature ?
>>
>
> Yes.
>
>
>  It's of course different from injecting services in the module
>>
>
> No difference.
>
>
>  but how is it different tapestry-wise ?
>>
>
> Just two different ways to get access to services. No difference
> Tapestry-wise. If you're going to use a service in just one or two methods
> in your module class, I'd use injection in their parameters. Otherwise,
> field injection.
>
>  *- Another option is to contribute to the RegistryStartup configuration a
>>
>> Runnable that invokes your service. Just calling it directly in
>> contributeRegistryStartup() makes the call to happen before the registry
>> was actually started up. *
>>
>> Well that is what I'm actually doing.
>>
>
> The code you provided us tells that's *not* what you're doing.
>
>
>  Only that I'm injecting services in
>> the module, while it looks like injecting the service through the
>> contribute method signature is a better practice.
>>
>
> It isn't a better practice, just a different way of doing the same thing.
> Your module class, as posted here, had just one use of the service, so the
> most appropriate way of injecting it, IMHO, was in the method signature.
>
>  Also you are saying that the runnable will run *before* the registry
>> starts up, isn't that a problem if I'm calling injected services ? I know
>> it isn't as I'm already doing it.
>>
>
> The code you provided does *not* use a Runnable, so I what I wrote was
> based on it. If your code actually invokes the service inside a Runnable
> contributed to the RegistryStartup service configuration, then it was right
> but, again, that's not what you posted here.
>
>
> --
> Thiago H. de Paula Figueiredo
>



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

Re: Problem injecting a Logger

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Thu, 14 Jun 2012 17:42:33 -0300, Muhammad Gelbana <m....@gmail.com>  
wrote:

> *- Do you know you can use injection (no annotations needed) in build,
> contribute and advise methods in Tapestry-IoC module classes? ;) *
> You mean in the method signature ?

Yes.

> It's of course different from injecting services in the module

No difference.

> but how is it different tapestry-wise ?

Just two different ways to get access to services. No difference  
Tapestry-wise. If you're going to use a service in just one or two methods  
in your module class, I'd use injection in their parameters. Otherwise,  
field injection.

> *- Another option is to contribute to the RegistryStartup configuration a
> Runnable that invokes your service. Just calling it directly in
> contributeRegistryStartup() makes the call to happen before the registry
> was actually started up. *
> Well that is what I'm actually doing.

The code you provided us tells that's *not* what you're doing.

> Only that I'm injecting services in
> the module, while it looks like injecting the service through the
> contribute method signature is a better practice.

It isn't a better practice, just a different way of doing the same thing.  
Your module class, as posted here, had just one use of the service, so the  
most appropriate way of injecting it, IMHO, was in the method signature.

> Also you are saying that the runnable will run *before* the registry  
> starts up, isn't that a problem if I'm calling injected services ? I  
> know it isn't as I'm already doing it.

The code you provided does *not* use a Runnable, so I what I wrote was  
based on it. If your code actually invokes the service inside a Runnable  
contributed to the RegistryStartup service configuration, then it was  
right but, again, that's not what you posted here.

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
*- Do you know you can use injection (no annotations needed) in build,
contribute and advise methods in Tapestry-IoC module classes? ;) *
You mean in the method signature ? It's of course different from injecting
services in the module but how is it different tapestry-wise ?

*- What about its constructor? This will work only if this initialization
doesn't use other services. *
Well that's not always the case but only today I remembered the
@PostInjection annotation. I gave it a try along with eagerLoad() and it
worked perfectly. Only that javax.inject.Inject doesn't work with
org.slf4j.Logger. Only tapestry's @Inject and @InjectResource !

*- Another option is to contribute to the RegistryStartup configuration a
Runnable that invokes your service. Just calling it directly in
contributeRegistryStartup() makes the call to happen before the registry
was actually started up. *
Well that is what I'm actually doing. Only that I'm injecting services in
the module, while it looks like injecting the service through the
contribute method signature is a better practice. Also you are saying that
the runnable will run *before* the registry starts up, isn't that a problem
if I'm calling injected services ? I know it isn't as I'm already doing it.


On Thu, Jun 14, 2012 at 9:01 PM, Thiago H de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> On Thu, 14 Jun 2012 15:41:59 -0300, Muhammad Gelbana <m....@gmail.com>
> wrote:
>
>  I'm injecting the service in the module class just to be able to call it
>> in the registry-contribution method to test the service once the
>> applications starts up.
>>
>
> Do you know you can use injection (no annotations needed) in build,
> contribute and advise methods in Tapestry-IoC module classes? ;)
>
>
>  But actually in production i'm doing the same, to call some of
>> my services methods to initialize them in a way, but since it looks weird
>> how do you guys think I should initialize a service ?
>>
>
> What about its constructor? This will work only if this initialization
> doesn't use other services.
>
>
>  is the eagerLoad() method while binding the only way ?
>>
>
> Another option is to contribute to the RegistryStartup configuration a
> Runnable that invokes your service. Just calling it directly in
> contributeRegistryStartup() makes the call to happen before the registry
> was actually started up.
>
>
>  Makes me think, when I was first learning about tapestry I had many
>> things done in the wrong way or even not-so-right way and the application
>> continued to grow based on these wrong concepts.
>>
>
> I call that learning. :)
>
>
> --
> Thiago H. de Paula Figueiredo
>



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

Re: Problem injecting a Logger

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Thu, 14 Jun 2012 15:41:59 -0300, Muhammad Gelbana <m....@gmail.com>  
wrote:

> I'm injecting the service in the module class just to be able to call it  
> in the registry-contribution method to test the service once the  
> applications starts up.

Do you know you can use injection (no annotations needed) in build,  
contribute and advise methods in Tapestry-IoC module classes? ;)

> But actually in production i'm doing the same, to call some of
> my services methods to initialize them in a way, but since it looks weird
> how do you guys think I should initialize a service ?

What about its constructor? This will work only if this initialization  
doesn't use other services.

> is the eagerLoad() method while binding the only way ?

Another option is to contribute to the RegistryStartup configuration a  
Runnable that invokes your service. Just calling it directly in  
contributeRegistryStartup() makes the call to happen before the registry  
was actually started up.

> Makes me think, when I was first learning about tapestry I had many  
> things done in the wrong way or even not-so-right way and the application
> continued to grow based on these wrong concepts.

I call that learning. :)

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
I'm injecting the service in the module class just to be able to call it in
the registry-contribution method to test the service once the applications
starts up. But actually in production i'm doing the same, to call some of
my services methods to initialize them in a way, but since it looks weird
how do you guys think I should initialize a service ? is the eagerLoad()
method while binding the only way ?

Makes me think, when I was first learning about tapestry I had many things
done in the wrong way or even not-so-right way and the application
continued to grow based on these wrong concepts.


On Thu, Jun 14, 2012 at 8:07 PM, Thiago H de Paula Figueiredo <
thiagohp@gmail.com> wrote:

> On Thu, 14 Jun 2012 15:01:49 -0300, Steve Eynon <
> steve.eynon@alienfactory.co.**uk <st...@alienfactory.co.uk>> wrote:
>
>  My mistake, the @Inject in the My class needs to be a
>>
>> org.apache.tapestry5.ioc.**annotations.Inject;
>> or
>> org.apache.tapestry5.ioc.**annotations.InjectResource;
>>
>> Probably as (already stated - I think), the T5 @Inject uses a
>> MasterObjectProvider whereas the javax @Inject just looks up Services
>> - which the Logger isn't... ???
>>
>
> I guess that's because the javax.inject.Inject annotation has a very
> specific definition of what can be injected with it and Tapestry-IoC
> resources (aka anything that can be injected that isn't a service) don't
> fit in this definition.
>
>
> --
> Thiago H. de Paula Figueiredo
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org<us...@tapestry.apache.org>
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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

Re: Problem injecting a Logger

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Thu, 14 Jun 2012 15:01:49 -0300, Steve Eynon  
<st...@alienfactory.co.uk> wrote:

> My mistake, the @Inject in the My class needs to be a
>
> org.apache.tapestry5.ioc.annotations.Inject;
> or
> org.apache.tapestry5.ioc.annotations.InjectResource;
>
> Probably as (already stated - I think), the T5 @Inject uses a
> MasterObjectProvider whereas the javax @Inject just looks up Services
> - which the Logger isn't... ???

I guess that's because the javax.inject.Inject annotation has a very  
specific definition of what can be injected with it and Tapestry-IoC  
resources (aka anything that can be injected that isn't a service) don't  
fit in this definition.

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Howard Lewis Ship <hl...@gmail.com>.
Hm. They're supposed to operate exactly the same.

On Thu, Jun 14, 2012 at 11:01 AM, Steve Eynon <
steve.eynon@alienfactory.co.uk> wrote:

> My mistake, the @Inject in the My class needs to be a
>
> org.apache.tapestry5.ioc.annotations.Inject;
> or
> org.apache.tapestry5.ioc.annotations.InjectResource;
>
> Probably as (already stated - I think), the T5 @Inject uses a
> MasterObjectProvider whereas the javax @Inject just looks up Services
> - which the Logger isn't... ???
>
> Steve.
>
> On 15 June 2012 01:14, Steve Eynon <st...@alienfactory.co.uk> wrote:
> > Just tried it on T5.3.3 and it worked fine with both @Inject
> annotations...
> >
> > Though I wouldn't advise injecting services into your module - that
> > just seems... well, weird!
> >
> > Steve.
> >
> >
> > On 15 June 2012 01:00, Muhammad Gelbana <m....@gmail.com> wrote:
> >> Well thanks, that was my mistake !
> >> Although now I tried calling the logger in a method called in the
> >> contribute registry startup static method and still tapestry didn't
> resolve
> >> it:
> >>
> >> public class *AppModule* {
> >>
> >> @Inject
> >> private IMy my;
> >> public static void bind(ServiceBinder binder) {
> >> binder.bind(IMy.class, My.class);
> >> }
> >>
> >> public void contributeRegistryStartup(OrderedConfiguration<Runnable>
> >> configuration, final Logger log) {
> >> my.a();
> >> }
> >> }
> >>
> >> package com.t5logging.services;
> >> import javax.inject.Inject;
> >> import org.slf4j.Logger;
> >>
> >> public class My implements IMy {
> >>
> >> @Inject
> >> private Logger log;
> >>
> >> public My() {
> >> }
> >>
> >> public void a() {
> >> System.out.println(log);
> >> log.info("Logging again");
> >> }
> >> }
> >>
> >> This still throws a service not implemented exception:
> >> Running Jetty 6.1.26
> >> .
> >> //Saving some time
> >> .
> >> [DEBUG] AppModule.IMy Creating proxy for service IMy
> >> [DEBUG] AppModule.IMy Loading class com.t5logging.services.My.
> >> [DEBUG] AppModule.IMy Marking class com.t5logging.services.My to be
> >> (re-)loaded
> >> [DEBUG] AppModule.IMy BEGIN Analyzing com.t5logging.services.My
> >> [DEBUG] AppModule.IMy   END Analyzing com.t5logging.services.My
> >> [ERROR] ioc.Registry No service implements the interface
> org.slf4j.Logger.
> >> [ERROR] ioc.Registry Operations trace:
> >> [ERROR] ioc.Registry [ 1] Realizing service RegistryStartup
> >> [ERROR] ioc.Registry [ 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)
> >> [ERROR] ioc.Registry [ 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)
> >> [ERROR] ioc.Registry [ 4] Determining injection value for parameter #2
> >> (java.util.List)
> >> [ERROR] ioc.Registry [ 5] Collecting ordered configuration for service
> >> RegistryStartup
> >> [ERROR] ioc.Registry [ 6] Invoking
> >>
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> >> Logger) (at AppModule.java:39)
> >> [ERROR] ioc.Registry [ 7] Reloading class com.t5logging.services.My.
> >> [ERROR] ioc.Registry [ 8] Creating plan to instantiate
> >> com.t5logging.services.My via public com.t5logging.services.My()
> >> [ERROR] ioc.Registry [ 9] Calculating possible injection value for field
> >> com.t5logging.services.My.log (org.slf4j.Logger)
> >> [ERROR] ioc.Registry [10] Resolving object of type org.slf4j.Logger
> using
> >> MasterObjectProvider
> >> [ERROR] TapestryIOCModule.RegistryStartup Construction of service
> >> RegistryStartup failed: Error invoking service contribution method
> >>
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> >> Logger): No service implements the interface org.slf4j.Logger.
> >> java.lang.RuntimeException: Error invoking service contribution method
> >>
> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
> >> at $Runnable_452bb13e0afc.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_452bb13e0adc.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 $IMy_452bb13e0aff.delegate(Unknown Source)
> >> at $IMy_452bb13e0aff.a(Unknown Source)
> >> at $IMy_452bb13e0afd.a(Unknown Source)
> >> at
> >>
> com.t5logging.services.AppModule.contributeRegistryStartup(AppModule.java:39)
> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> >> at java.lang.reflect.Method.invoke(Unknown Source)
> >> 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-14 18:55:47.604:WARN::failed app: java.lang.RuntimeException:
> >> Exception constructing service 'RegistryStartup': Error invoking service
> >> contribution method
> >>
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> >> Logger): No service implements the interface org.slf4j.Logger.
> >> 2012-06-14 18:55:47.604:WARN::Failed startup of context
> >> org.mortbay.jetty.webapp.WebAppContext@135f0a
> >> {/,E:\Workspace\Eclipse\TapestryLogging\src\main\webapp}
> >> java.lang.RuntimeException: Exception constructing service
> >> 'RegistryStartup': Error invoking service contribution method
> >>
> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
> >> at $Runnable_452bb13e0afc.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)
> >> 2012-06-14 18:55:47.637:INFO::Started SelectChannelConnector@0.0.0.0:80
> >>
> >>
> >> On Thu, Jun 14, 2012 at 6:26 PM, Steve Eynon <
> steve.eynon@alienfactory.co.uk
> >>> wrote:
> >>
> >>> Yeah, this isn't a T5 thing - it's Java!
> >>>
> >>>   @Inject
> >>>   private Logger log;
> >>>
> >>>   public My() {
> >>>        log.info("Logger injected in service using
> @javax.inject.Inject");
> >>>   }
> >>>
> >>> T5 can't do field injection until it's constructed the class. But when
> >>> T5 constructs the class you access the field --> NPE!
> >>>
> >>> Steve.
> >>>
> >>>
> >>> On 15 June 2012 00:11, Taha Siddiqi <ta...@gmail.com> wrote:
> >>> > I don't think you can use "@Inject"ed value in the constructor.
> >>> >
> >>> > The constructor is called first and then injection is done. As you
> are
> >>> accessing the service in constructor, at this point the field
> injection has
> >>> not been done. And as Logger has not been build by the registry, you
> get
> >>> Service not implemented error..
> >>> >
> >>> > regards
> >>> > Taha
> >>> >
> >>> > On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:
> >>> >
> >>> >> <TapestryLogging.zip>
> >>> >
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >>> For additional commands, e-mail: users-help@tapestry.apache.org
> >>>
> >>>
> >>
> >>
> >> --
> >> *Regards,*
> >> *Muhammad Gelbana
> >> Java Developer*
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@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

Re: Problem injecting a Logger

Posted by Steve Eynon <st...@alienfactory.co.uk>.
My mistake, the @Inject in the My class needs to be a

org.apache.tapestry5.ioc.annotations.Inject;
or
org.apache.tapestry5.ioc.annotations.InjectResource;

Probably as (already stated - I think), the T5 @Inject uses a
MasterObjectProvider whereas the javax @Inject just looks up Services
- which the Logger isn't... ???

Steve.

On 15 June 2012 01:14, Steve Eynon <st...@alienfactory.co.uk> wrote:
> Just tried it on T5.3.3 and it worked fine with both @Inject annotations...
>
> Though I wouldn't advise injecting services into your module - that
> just seems... well, weird!
>
> Steve.
>
>
> On 15 June 2012 01:00, Muhammad Gelbana <m....@gmail.com> wrote:
>> Well thanks, that was my mistake !
>> Although now I tried calling the logger in a method called in the
>> contribute registry startup static method and still tapestry didn't resolve
>> it:
>>
>> public class *AppModule* {
>>
>> @Inject
>> private IMy my;
>> public static void bind(ServiceBinder binder) {
>> binder.bind(IMy.class, My.class);
>> }
>>
>> public void contributeRegistryStartup(OrderedConfiguration<Runnable>
>> configuration, final Logger log) {
>> my.a();
>> }
>> }
>>
>> package com.t5logging.services;
>> import javax.inject.Inject;
>> import org.slf4j.Logger;
>>
>> public class My implements IMy {
>>
>> @Inject
>> private Logger log;
>>
>> public My() {
>> }
>>
>> public void a() {
>> System.out.println(log);
>> log.info("Logging again");
>> }
>> }
>>
>> This still throws a service not implemented exception:
>> Running Jetty 6.1.26
>> .
>> //Saving some time
>> .
>> [DEBUG] AppModule.IMy Creating proxy for service IMy
>> [DEBUG] AppModule.IMy Loading class com.t5logging.services.My.
>> [DEBUG] AppModule.IMy Marking class com.t5logging.services.My to be
>> (re-)loaded
>> [DEBUG] AppModule.IMy BEGIN Analyzing com.t5logging.services.My
>> [DEBUG] AppModule.IMy   END Analyzing com.t5logging.services.My
>> [ERROR] ioc.Registry No service implements the interface org.slf4j.Logger.
>> [ERROR] ioc.Registry Operations trace:
>> [ERROR] ioc.Registry [ 1] Realizing service RegistryStartup
>> [ERROR] ioc.Registry [ 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)
>> [ERROR] ioc.Registry [ 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)
>> [ERROR] ioc.Registry [ 4] Determining injection value for parameter #2
>> (java.util.List)
>> [ERROR] ioc.Registry [ 5] Collecting ordered configuration for service
>> RegistryStartup
>> [ERROR] ioc.Registry [ 6] Invoking
>> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
>> Logger) (at AppModule.java:39)
>> [ERROR] ioc.Registry [ 7] Reloading class com.t5logging.services.My.
>> [ERROR] ioc.Registry [ 8] Creating plan to instantiate
>> com.t5logging.services.My via public com.t5logging.services.My()
>> [ERROR] ioc.Registry [ 9] Calculating possible injection value for field
>> com.t5logging.services.My.log (org.slf4j.Logger)
>> [ERROR] ioc.Registry [10] Resolving object of type org.slf4j.Logger using
>> MasterObjectProvider
>> [ERROR] TapestryIOCModule.RegistryStartup Construction of service
>> RegistryStartup failed: Error invoking service contribution method
>> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
>> Logger): No service implements the interface org.slf4j.Logger.
>> java.lang.RuntimeException: Error invoking service contribution method
>> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
>> at $Runnable_452bb13e0afc.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_452bb13e0adc.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 $IMy_452bb13e0aff.delegate(Unknown Source)
>> at $IMy_452bb13e0aff.a(Unknown Source)
>> at $IMy_452bb13e0afd.a(Unknown Source)
>> at
>> com.t5logging.services.AppModule.contributeRegistryStartup(AppModule.java:39)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> at java.lang.reflect.Method.invoke(Unknown Source)
>> 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-14 18:55:47.604:WARN::failed app: java.lang.RuntimeException:
>> Exception constructing service 'RegistryStartup': Error invoking service
>> contribution method
>> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
>> Logger): No service implements the interface org.slf4j.Logger.
>> 2012-06-14 18:55:47.604:WARN::Failed startup of context
>> org.mortbay.jetty.webapp.WebAppContext@135f0a
>> {/,E:\Workspace\Eclipse\TapestryLogging\src\main\webapp}
>> java.lang.RuntimeException: Exception constructing service
>> 'RegistryStartup': Error invoking service contribution method
>> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
>> at $Runnable_452bb13e0afc.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)
>> 2012-06-14 18:55:47.637:INFO::Started SelectChannelConnector@0.0.0.0:80
>>
>>
>> On Thu, Jun 14, 2012 at 6:26 PM, Steve Eynon <steve.eynon@alienfactory.co.uk
>>> wrote:
>>
>>> Yeah, this isn't a T5 thing - it's Java!
>>>
>>>   @Inject
>>>   private Logger log;
>>>
>>>   public My() {
>>>        log.info("Logger injected in service using @javax.inject.Inject");
>>>   }
>>>
>>> T5 can't do field injection until it's constructed the class. But when
>>> T5 constructs the class you access the field --> NPE!
>>>
>>> Steve.
>>>
>>>
>>> On 15 June 2012 00:11, Taha Siddiqi <ta...@gmail.com> wrote:
>>> > I don't think you can use "@Inject"ed value in the constructor.
>>> >
>>> > The constructor is called first and then injection is done. As you are
>>> accessing the service in constructor, at this point the field injection has
>>> not been done. And as Logger has not been build by the registry, you get
>>> Service not implemented error..
>>> >
>>> > regards
>>> > Taha
>>> >
>>> > On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:
>>> >
>>> >> <TapestryLogging.zip>
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>>
>> --
>> *Regards,*
>> *Muhammad Gelbana
>> Java Developer*

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Steve Eynon <st...@alienfactory.co.uk>.
Just tried it on T5.3.3 and it worked fine with both @Inject annotations...

Though I wouldn't advise injecting services into your module - that
just seems... well, weird!

Steve.


On 15 June 2012 01:00, Muhammad Gelbana <m....@gmail.com> wrote:
> Well thanks, that was my mistake !
> Although now I tried calling the logger in a method called in the
> contribute registry startup static method and still tapestry didn't resolve
> it:
>
> public class *AppModule* {
>
> @Inject
> private IMy my;
> public static void bind(ServiceBinder binder) {
> binder.bind(IMy.class, My.class);
> }
>
> public void contributeRegistryStartup(OrderedConfiguration<Runnable>
> configuration, final Logger log) {
> my.a();
> }
> }
>
> package com.t5logging.services;
> import javax.inject.Inject;
> import org.slf4j.Logger;
>
> public class My implements IMy {
>
> @Inject
> private Logger log;
>
> public My() {
> }
>
> public void a() {
> System.out.println(log);
> log.info("Logging again");
> }
> }
>
> This still throws a service not implemented exception:
> Running Jetty 6.1.26
> .
> //Saving some time
> .
> [DEBUG] AppModule.IMy Creating proxy for service IMy
> [DEBUG] AppModule.IMy Loading class com.t5logging.services.My.
> [DEBUG] AppModule.IMy Marking class com.t5logging.services.My to be
> (re-)loaded
> [DEBUG] AppModule.IMy BEGIN Analyzing com.t5logging.services.My
> [DEBUG] AppModule.IMy   END Analyzing com.t5logging.services.My
> [ERROR] ioc.Registry No service implements the interface org.slf4j.Logger.
> [ERROR] ioc.Registry Operations trace:
> [ERROR] ioc.Registry [ 1] Realizing service RegistryStartup
> [ERROR] ioc.Registry [ 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)
> [ERROR] ioc.Registry [ 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)
> [ERROR] ioc.Registry [ 4] Determining injection value for parameter #2
> (java.util.List)
> [ERROR] ioc.Registry [ 5] Collecting ordered configuration for service
> RegistryStartup
> [ERROR] ioc.Registry [ 6] Invoking
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> Logger) (at AppModule.java:39)
> [ERROR] ioc.Registry [ 7] Reloading class com.t5logging.services.My.
> [ERROR] ioc.Registry [ 8] Creating plan to instantiate
> com.t5logging.services.My via public com.t5logging.services.My()
> [ERROR] ioc.Registry [ 9] Calculating possible injection value for field
> com.t5logging.services.My.log (org.slf4j.Logger)
> [ERROR] ioc.Registry [10] Resolving object of type org.slf4j.Logger using
> MasterObjectProvider
> [ERROR] TapestryIOCModule.RegistryStartup Construction of service
> RegistryStartup failed: Error invoking service contribution method
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> Logger): No service implements the interface org.slf4j.Logger.
> java.lang.RuntimeException: Error invoking service contribution method
> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
> at $Runnable_452bb13e0afc.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_452bb13e0adc.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 $IMy_452bb13e0aff.delegate(Unknown Source)
> at $IMy_452bb13e0aff.a(Unknown Source)
> at $IMy_452bb13e0afd.a(Unknown Source)
> at
> com.t5logging.services.AppModule.contributeRegistryStartup(AppModule.java:39)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> 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-14 18:55:47.604:WARN::failed app: java.lang.RuntimeException:
> Exception constructing service 'RegistryStartup': Error invoking service
> contribution method
> com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
> Logger): No service implements the interface org.slf4j.Logger.
> 2012-06-14 18:55:47.604:WARN::Failed startup of context
> org.mortbay.jetty.webapp.WebAppContext@135f0a
> {/,E:\Workspace\Eclipse\TapestryLogging\src\main\webapp}
> java.lang.RuntimeException: Exception constructing service
> 'RegistryStartup': Error invoking service contribution method
> com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
> at $Runnable_452bb13e0afc.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)
> 2012-06-14 18:55:47.637:INFO::Started SelectChannelConnector@0.0.0.0:80
>
>
> On Thu, Jun 14, 2012 at 6:26 PM, Steve Eynon <steve.eynon@alienfactory.co.uk
>> wrote:
>
>> Yeah, this isn't a T5 thing - it's Java!
>>
>>   @Inject
>>   private Logger log;
>>
>>   public My() {
>>        log.info("Logger injected in service using @javax.inject.Inject");
>>   }
>>
>> T5 can't do field injection until it's constructed the class. But when
>> T5 constructs the class you access the field --> NPE!
>>
>> Steve.
>>
>>
>> On 15 June 2012 00:11, Taha Siddiqi <ta...@gmail.com> wrote:
>> > I don't think you can use "@Inject"ed value in the constructor.
>> >
>> > The constructor is called first and then injection is done. As you are
>> accessing the service in constructor, at this point the field injection has
>> not been done. And as Logger has not been build by the registry, you get
>> Service not implemented error..
>> >
>> > regards
>> > Taha
>> >
>> > On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:
>> >
>> >> <TapestryLogging.zip>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
> --
> *Regards,*
> *Muhammad Gelbana
> Java Developer*

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
Well thanks, that was my mistake !
Although now I tried calling the logger in a method called in the
contribute registry startup static method and still tapestry didn't resolve
it:

public class *AppModule* {

@Inject
private IMy my;
public static void bind(ServiceBinder binder) {
binder.bind(IMy.class, My.class);
}

public void contributeRegistryStartup(OrderedConfiguration<Runnable>
configuration, final Logger log) {
my.a();
}
}

package com.t5logging.services;
import javax.inject.Inject;
import org.slf4j.Logger;

public class My implements IMy {

@Inject
private Logger log;

public My() {
}

public void a() {
System.out.println(log);
log.info("Logging again");
}
}

This still throws a service not implemented exception:
Running Jetty 6.1.26
.
//Saving some time
.
[DEBUG] AppModule.IMy Creating proxy for service IMy
[DEBUG] AppModule.IMy Loading class com.t5logging.services.My.
[DEBUG] AppModule.IMy Marking class com.t5logging.services.My to be
(re-)loaded
[DEBUG] AppModule.IMy BEGIN Analyzing com.t5logging.services.My
[DEBUG] AppModule.IMy   END Analyzing com.t5logging.services.My
[ERROR] ioc.Registry No service implements the interface org.slf4j.Logger.
[ERROR] ioc.Registry Operations trace:
[ERROR] ioc.Registry [ 1] Realizing service RegistryStartup
[ERROR] ioc.Registry [ 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)
[ERROR] ioc.Registry [ 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)
[ERROR] ioc.Registry [ 4] Determining injection value for parameter #2
(java.util.List)
[ERROR] ioc.Registry [ 5] Collecting ordered configuration for service
RegistryStartup
[ERROR] ioc.Registry [ 6] Invoking
com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
Logger) (at AppModule.java:39)
[ERROR] ioc.Registry [ 7] Reloading class com.t5logging.services.My.
[ERROR] ioc.Registry [ 8] Creating plan to instantiate
com.t5logging.services.My via public com.t5logging.services.My()
[ERROR] ioc.Registry [ 9] Calculating possible injection value for field
com.t5logging.services.My.log (org.slf4j.Logger)
[ERROR] ioc.Registry [10] Resolving object of type org.slf4j.Logger using
MasterObjectProvider
[ERROR] TapestryIOCModule.RegistryStartup Construction of service
RegistryStartup failed: Error invoking service contribution method
com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
Logger): No service implements the interface org.slf4j.Logger.
java.lang.RuntimeException: Error invoking service contribution method
com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
at $Runnable_452bb13e0afc.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_452bb13e0adc.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 $IMy_452bb13e0aff.delegate(Unknown Source)
at $IMy_452bb13e0aff.a(Unknown Source)
at $IMy_452bb13e0afd.a(Unknown Source)
at
com.t5logging.services.AppModule.contributeRegistryStartup(AppModule.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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-14 18:55:47.604:WARN::failed app: java.lang.RuntimeException:
Exception constructing service 'RegistryStartup': Error invoking service
contribution method
com.t5logging.services.AppModule.contributeRegistryStartup(OrderedConfiguration,
Logger): No service implements the interface org.slf4j.Logger.
2012-06-14 18:55:47.604:WARN::Failed startup of context
org.mortbay.jetty.webapp.WebAppContext@135f0a
{/,E:\Workspace\Eclipse\TapestryLogging\src\main\webapp}
java.lang.RuntimeException: Exception constructing service
'RegistryStartup': Error invoking service contribution method
com.t5logging.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_452bb13e0afc.delegate(Unknown Source)
at $Runnable_452bb13e0afc.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)
2012-06-14 18:55:47.637:INFO::Started SelectChannelConnector@0.0.0.0:80


On Thu, Jun 14, 2012 at 6:26 PM, Steve Eynon <steve.eynon@alienfactory.co.uk
> wrote:

> Yeah, this isn't a T5 thing - it's Java!
>
>   @Inject
>   private Logger log;
>
>   public My() {
>        log.info("Logger injected in service using @javax.inject.Inject");
>   }
>
> T5 can't do field injection until it's constructed the class. But when
> T5 constructs the class you access the field --> NPE!
>
> Steve.
>
>
> On 15 June 2012 00:11, Taha Siddiqi <ta...@gmail.com> wrote:
> > I don't think you can use "@Inject"ed value in the constructor.
> >
> > The constructor is called first and then injection is done. As you are
> accessing the service in constructor, at this point the field injection has
> not been done. And as Logger has not been build by the registry, you get
> Service not implemented error..
> >
> > regards
> > Taha
> >
> > On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:
> >
> >> <TapestryLogging.zip>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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

Re: Problem injecting a Logger

Posted by Steve Eynon <st...@alienfactory.co.uk>.
Yeah, this isn't a T5 thing - it's Java!

   @Inject
   private Logger log;

   public My() {
       log.info("Logger injected in service using @javax.inject.Inject");
   }

T5 can't do field injection until it's constructed the class. But when
T5 constructs the class you access the field --> NPE!

Steve.


On 15 June 2012 00:11, Taha Siddiqi <ta...@gmail.com> wrote:
> I don't think you can use "@Inject"ed value in the constructor.
>
> The constructor is called first and then injection is done. As you are accessing the service in constructor, at this point the field injection has not been done. And as Logger has not been build by the registry, you get Service not implemented error..
>
> regards
> Taha
>
> On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:
>
>> <TapestryLogging.zip>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Taha Siddiqi <ta...@gmail.com>.
I don't think you can use "@Inject"ed value in the constructor. 

The constructor is called first and then injection is done. As you are accessing the service in constructor, at this point the field injection has not been done. And as Logger has not been build by the registry, you get Service not implemented error..

regards
Taha

On Jun 14, 2012, at 9:25 PM, Muhammad Gelbana wrote:

> <TapestryLogging.zip>


Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
*@Howard*
Github gave me too much pain before being able to commit anything to it !
I hope a zip file will do :)

*@Denis*
In my tests, the only difference I found between "javax.inject.Inject" and
both tapestry's @Inject and @InjectResource is that Java's @Inject causes a
"No service implements..." exception while the others cause a NPE when
using the logger instance.

Thank you all for your time.

On Thu, Jun 14, 2012 at 11:40 AM, Denis Stepanov
<de...@gmail.com>wrote:

> Its looked like resources are not injected when "javax.inject.Inject" is
> used.
>
> Denis
>
> Jun 14, 2012 v 2:31 AM, Howard Lewis Ship:
>
> > I'm not seeing anything here.  How about you put your source into a Gist
> (
> > gist.github.com) and paste the URL here?
> >
> > On Wed, Jun 13, 2012 at 3:12 PM, Muhammad Gelbana <m.gelbana@gmail.com
> >wrote:
> >
> >> 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 <hlship@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.gelbana@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.gelbana@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 <hlship@gmail.com
> >>>>> wrote:
> >>>>>
> >>>>>> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <
> >>> m.gelbana@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 <
> >>> hlship@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 <
> >>>>>>>> thiagohp@gmail.com> wrote:
> >>>>>>>>
> >>>>>>>>> On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> >>>>>>>> joshcanfield@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-unsubscribe@tapestry.apache.org
> >>>>>>>>> For additional commands, e-mail:
> >> users-help@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-unsubscribe@tapestry.apache.org
> >>>>>> For additional commands, e-mail: users-help@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*
> >>
> >
> >
> >
> > --
> > 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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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

Re: Problem injecting a Logger

Posted by Denis Stepanov <de...@gmail.com>.
Its looked like resources are not injected when "javax.inject.Inject" is used.

Denis

Jun 14, 2012 v 2:31 AM, Howard Lewis Ship:

> I'm not seeing anything here.  How about you put your source into a Gist (
> gist.github.com) and paste the URL here?
> 
> On Wed, Jun 13, 2012 at 3:12 PM, Muhammad Gelbana <m....@gmail.com>wrote:
> 
>> 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 <hlship@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.gelbana@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.gelbana@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 <hlship@gmail.com
>>>>> wrote:
>>>>> 
>>>>>> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <
>>> m.gelbana@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 <
>>> hlship@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 <
>>>>>>>> thiagohp@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
>>>>>>>> joshcanfield@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-unsubscribe@tapestry.apache.org
>>>>>>>>> For additional commands, e-mail:
>> users-help@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-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@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*
>> 
> 
> 
> 
> -- 
> 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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Problem injecting a Logger

Posted by Howard Lewis Ship <hl...@gmail.com>.
I'm not seeing anything here.  How about you put your source into a Gist (
gist.github.com) and paste the URL here?

On Wed, Jun 13, 2012 at 3:12 PM, Muhammad Gelbana <m....@gmail.com>wrote:

> 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 <hlship@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.gelbana@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.gelbana@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 <hlship@gmail.com
> > > >wrote:
> > > >
> > > >> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <
> > m.gelbana@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 <
> > hlship@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 <
> > > >> >> thiagohp@gmail.com> wrote:
> > > >> >>
> > > >> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> > > >> >> joshcanfield@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-unsubscribe@tapestry.apache.org
> > > >> >> > For additional commands, e-mail:
> users-help@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-unsubscribe@tapestry.apache.org
> > > >> For additional commands, e-mail: users-help@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*
>



-- 
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

Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
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 <hl...@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.gelbana@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.gelbana@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 <hlship@gmail.com
> > >wrote:
> > >
> > >> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <
> m.gelbana@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 <
> hlship@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 <
> > >> >> thiagohp@gmail.com> wrote:
> > >> >>
> > >> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> > >> >> joshcanfield@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-unsubscribe@tapestry.apache.org
> > >> >> > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
> > >> For additional commands, e-mail: users-help@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*

Re: Problem injecting a Logger

Posted by Howard Lewis Ship <hl...@gmail.com>.
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....@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.gelbana@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 <hlship@gmail.com
> >wrote:
> >
> >> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <m....@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 <hl...@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 <
> >> >> thiagohp@gmail.com> wrote:
> >> >>
> >> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> >> >> joshcanfield@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-unsubscribe@tapestry.apache.org
> >> >> > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@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

Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
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....@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 <hl...@gmail.com>wrote:
>
>> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <m....@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 <hl...@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 <
>> >> thiagohp@gmail.com> wrote:
>> >>
>> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
>> >> joshcanfield@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-unsubscribe@tapestry.apache.org
>> >> > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
> --
> *Regards,*
> *Muhammad Gelbana
> Java Developer*
>
>


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

Re: Problem injecting a Logger

Posted by Muhammad Gelbana <m....@gmail.com>.
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 <hl...@gmail.com> wrote:

> On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <m....@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 <hl...@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 <
> >> thiagohp@gmail.com> wrote:
> >>
> >> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
> >> joshcanfield@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-unsubscribe@tapestry.apache.org
> >> > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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

Re: Problem injecting a Logger

Posted by Howard Lewis Ship <hl...@gmail.com>.
On Wed, Jun 13, 2012 at 7:12 AM, Muhammad Gelbana <m....@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 <hl...@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 <
>> thiagohp@gmail.com> wrote:
>>
>> > On Tue, 28 Dec 2010 21:11:58 -0200, Josh Canfield <
>> joshcanfield@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-unsubscribe@tapestry.apache.org
>> > For additional commands, e-mail: users-help@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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org