Adding ids to my services does not help. The problem occurs when HibernateModule is trying to contribute the default HibernateConfigurer, but is unable to look it up, because it does not specify which one is the default.
This is the code from HibernateModule: public static void contributeHibernateSessionSource(OrderedConfiguration<HibernateConfigurer> config, HibernateConfigurer defaultHibernateConfigurer) { config.add("Default", defaultHibernateConfigurer); config.addInstance("PackageName", PackageNameHibernateConfigurer.class); } Of course if there is only one HibernateConfigurer implementation then there is no problem. Quoting Kristian Marinkovic <[EMAIL PROTECTED]>: > not a bug. this is correct behavior! > > if you declare multiple ioc services with the same interface you have > to qualifiy them with an id. otherwise the ioc container wont know which > service instance of the HibernateConfigurer interface to inject > > in your use case you could also contribute the HibernateConfigurer > directly... > > public void > contributeHibernateSessionSource(OrderedConfiguration<HibernateConfigurer> > > config, ObjectLocator locator) > { > config.add(locator.proxy(HibernateConfigurer.class, > MyImplementation.class)); > // or > config.add(locator.autobuild(MyOtherImplementation.class)); > } > > g, > kris > > > > > Imants Firsts <[EMAIL PROTECTED]> > 27.11.2008 17:37 > Bitte antworten an > "Tapestry users" <users@tapestry.apache.org> > > > An > users@tapestry.apache.org > Kopie > > Thema > [T5] Bug in HibernateModule? > > > > > > > > Hi! > > I am getting the following exception if I have a service in my > application > that implements HibernateConfigurer and I contribute it to > HibernateSessionSource. > > org.apache.tapestry5.ioc.internal.OperationException > Service interface org.apache.tapestry5.hibernate.HibernateConfigurer is > matched by 3 services: DefaultHibernateConfigurer, > HibernateAdministration, HibernateInterceptorConfigurer. Automatic > dependency resolution requires that exactly one service implement the > interface. > > The problem is fixed by adding the > @InjectService("DefaultHibernateConfigurer") annotation to the > > contributeHibernateSessionSource defaultHibernateConfigurer parameter. > > Current declaration: > public static void > contributeHibernateSessionSource(OrderedConfiguration<HibernateConfigurer> > > config, HibernateConfigurer defaultHibernateConfigurer) > > Fixed declaration: > public static void > contributeHibernateSessionSource(OrderedConfiguration<HibernateConfigurer> > > config, @InjectService("DefaultHibernateConfigurer") > HibernateConfigurer > defaultHibernateConfigurer) > > > --------------------------------------------------------------------- > 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]