I suffered with this one for quite some time... you can *not provide ComponentResources to a service, you will end up with all sorts of funky errors, but I did however manage to create a navigation component and reuse it in there. The navigation component is part of my layout template, so I don't have to inject ComponentResources in every page.

Davor Hrg wrote:
you can not inject component resources that way ... it is specific to a
component
so it's scope is not even PER_THREAD

you will have to provide it in the method you call...
and inject it into your page...

look at it this way: if you have a dozen of components on your page
and from one of the components you call your service....
how would tapestry know for which of the dozen components you need the
ComponentResources ?

that's what I can tell you for now...

Davor Hrg

On 10/26/07, Angelo Chen <[EMAIL PROTECTED]> wrote:
hi davor,

correction, the problem is ComponentResources used in the constructor, it
has this error:

Exception constructing service 'MyServices': Error invoking constructor
org.bfe.myapp.t5.MyServicesImp(ComponentResources) (at
MyServicesImp.java:36) (for service 'MyServices'): No service implements
the
interface org.apache.tapestry.ComponentResources.

seems ComponentResources can be used in this situation? Thanks.

A.C.


Angelo Chen wrote:
Hi,

Thanks, now when there is only one parameter in the constructor, it
works:
 public MyServicesImp(ApplicationGlobals globals) {
        this.globals = globals;
    }

but if I have this:

 public MyServicesImp(ApplicationGlobals globals, ComponentResources
resources) {
        this.globals = globals;
        this.resources = resources;
    }

it won't work, any hint?

Thanks,
A.C.


Davor Hrg wrote:
service do not get enhanced like pages do,

services get dependacies through constructor...

http://tapestry.apache.org/tapestry5/tapestry-ioc/service.html

Davor Hrg

On 10/26/07, Angelo Chen <[EMAIL PROTECTED]> wrote:
Hi,

I injected ComponentResources in a service, but it's null, why?

public class MyServicesImp implements MyServices {

    @Inject
    private ComponentResources resources;

    public String createExternalPageLink(String pageName, Object
context)
{
        return getDomainName() + resources.createPageLink(pageName,
true,
context);
    }
}
--
View this message in context:

http://www.nabble.com/T5%3A-inject-ComponentResources-in-a-service-tf4695974.html#a13423186
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
View this message in context:
http://www.nabble.com/T5%3A-inject-ComponentResources-in-a-service-tf4695974.html#a13423903
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to