Something wired when tapestry try to get the HibernateSession : Error invoking service builder method org.apache.tapestry.hibernate.HibernateModule.build(HibernateSessionSource, ThreadCleanupHub) (at HibernateModule.java:62) (for service 'HibernateSessionManager'): Exception constructing service 'HibernateSessionSource': Error invoking constructor org.apache.tapestry.internal.hibernate.HibernateSessionSourceImpl(Log, Collection, ClassNameLocator) (at HibernateSessionSourceImpl.java:35) (for service 'HibernateSessionSource'): No service implements the interface org.apache.commons.logging.Log.
java.lang.RuntimeException No service implements the interface org.apache.commons.logging.Log. Stack trace - org.apache.tapestry.ioc.internal.RegistryImpl.getService( RegistryImpl.java:553) - org.apache.tapestry.ioc.internal.services.MasterObjectProviderImpl.provide (MasterObjectProviderImpl.java:46) - org.apache.tapestry.ioc.internal.RegistryImpl.getObject( RegistryImpl.java:665) - org.apache.tapestry.ioc.internal.RegistryImpl.getObject( RegistryImpl.java:722) - org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getObject( ObjectLocatorImpl.java:50) - org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameterValue (InternalUtils.java:217) - org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameters (InternalUtils.java:248) - org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParametersForConstructor (InternalUtils.java:235) - org.apache.tapestry.ioc.internal.ConstructorServiceCreator.createObject (ConstructorServiceCreator.java:46) - org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService (SingletonServiceLifecycle.java:31) - org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject (LifecycleWrappedServiceCreator.java:54) - org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject( InterceptorStackBuilder.java:54) - org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject (RecursiveServiceCreationCheckWrapper.java:61) - org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject (JustInTimeObjectCreator.java:67) - org.apache.tapestry.internal.hibernate.HibernateSessionManagerImpl .<init>(HibernateSessionManagerImpl.java:31) - org.apache.tapestry.hibernate.HibernateModule.build( HibernateModule.java:62) - sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:39) - sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:25) - java.lang.reflect.Method.invoke(Method.java:585) - org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject (ServiceBuilderMethodInvoker.java:76) - org.apache.tapestry.ioc.internal.services.PerThreadServiceCreator.initialValue (PerThreadServiceCreator.java:50) - java.lang.ThreadLocal$ThreadLocalMap.getAfterMiss(ThreadLocal.java :374) - java.lang.ThreadLocal$ThreadLocalMap.get(ThreadLocal.java:347) - java.lang.ThreadLocal$ThreadLocalMap.access$000(ThreadLocal.java :225) - java.lang.ThreadLocal.get(ThreadLocal.java:127) - org.apache.tapestry.ioc.internal.services.PerThreadServiceCreator.createObject (PerThreadServiceCreator.java:56) - papo.dao.impl.UserDaoImpl.getUser(UserDaoImpl.java:35) The origin of the problem is when trying to getSession() : public class UserDaoImpl implements UserDao { private static Log log = LogFactory.getLog(UserDaoImpl.class); private Session session; public Session getSession() { return session; } public void setSession(Session session) { this.session = session; } public UserDaoImpl(Session session) { setSession(session); } /** * Récupére un User pour un login et password donné * * @param login * @param password * @return Operateur */ public User getUser(String login, String password) { log.debug("Recherche du User login : " + login); try { Query q = getSession().createQuery("from User u where u.login = :login and u.password = :pwd"); ... } Tapestry-ioc is responsible to get the constructor call : public static void bind(ServiceBinder binder) { ... binder.bind(UserDao.class, UserDaoImpl.class); ... } No idea, still investigating. I tried to clear tomcat cache, check the libraries... maybe something missing somewhere. T5.0.6 for core/annotation and ioc and T5.0.5 for tapestry-hibernate, maybe it is that the problem. -- Michael Bernagou Java Developper