You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Michael Zehender <mi...@googlemail.com> on 2009/05/23 10:42:01 UTC

[tapestry-ioc] strange registry problem: findDecoratorsForService may no longer be invoked

Hello,

After the registry was built and performRegistryStartup has been  
called, I get the following exception at processing the first request:

java.lang.RuntimeException: Exception constructing service  
'RatingSessionFactory': Method  
org 
.apache 
.tapestry5 
.ioc.internal.ModuleImpl.findDecoratorsForService(ModuleImpl.java:130)  
may no longer be invoked.

There is a workaround to make RatingSessionFactory eager loading -  
however I don't want to make every service eager loading to
prevent such a startup problem.

It's now the third time this exception occurs (with different  
services) and I'd like to know what's wrong.

I'm using tapestry5-ioc version 5.0.18 my module looks something like  
this:

	public static void bind(ServiceBinder binder)
	{
		// other services, using the session factory
	}
	
	public static SessionFactory  
buildRatingSessionFactory(HibernateConfig config)
	{
		AnnotationConfiguration annotated = new AnnotationConfiguration()
			.setProperty("hibernate.dialect", config.dialect())
			.setProperty("hibernate.connection.driver_class",  
config.driverClass())
			.setProperty("hibernate.connection.url", config.url())
			.setProperty("hibernate.connection.username", config.username())
			.setProperty("hibernate.connection.password", config.password())
			.setProperty("hibernate.connection.pool_size", "" +  
config.poolSize())
			.setProperty("hibernate.connection.autocommit", "" +  
config.autoCommit())
			.setProperty("hibernate.cache.provider_class",  
config.cacheProvider())
			.setProperty("hibernate.hbm2ddl.auto", config.hbm2ddl())
			.setProperty("hibernate.show_sql", "" + config.showSQL())
			.setProperty("hibernate.current_session_context_class", "thread")
			.addAnnotatedClass(SomeClass.class);
		
		return annotated.buildSessionFactory();
	}

My startup code is this:

		RegistryBuilder builder = new RegistryBuilder();
		
		builder.add(MyModule1.class);
		builder.add(MyModule2.class);
		
		Registry registry = builder.build();
		registry.performRegistryStartup();

Thanks for any responses :)
Michael



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