I have serious problems with simple service injection
into page.

I have one service interface (test.FooManager) and one
service implementation (test.DefaultFooManager).


Module (test.AppModule):

public class AppModule
{
        public static void bind(ServiceBinder binder)
        {
                binder.bind(FooManager.class,
DefaultFooManager.class);
        }
}


web.xml

<web-app>
        <display-name>App</display-name>

        <context-param>
                <param-name>tapestry.app-package</param-name>
                <param-value>test</param-value>
        </context-param>

        <filter>
                <filter-name>app</filter-name>
        
<filter-class>org.apache.tapestry.TapestryFilter</filter-class>
        </filter>

        <filter-mapping>
                <filter-name>app</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
</web-app>


Test page class (test.Test):

public class Test
{
        @Inject
        private FooManager fooManager;
}


While trying to display page exception is raised:

java.lang.RuntimeException
No service implements the interface test.FooManager.


I've run a little debug session and I discover, that
in ModuleImpl#findServiceIdsForInterface(Class
serviceInterface) check if passed parameter is
assignable from interface class defined in module
definition always gives false for my service (it looks
like they both were loaded by different classloaders).

Injecting service in pages should be straightforward,
so... what do I miss?

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

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

Reply via email to