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 Bernagou <bl...@gmail.com> on 2007/12/18 10:23:10 UTC
T5 tapestry-hibernate error?
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
Re: T5 tapestry-hibernate error?
Posted by Michael Bernagou <bl...@gmail.com>.
Ok, the problem is the lib version.
So, synchronized all the libraries versions :D
2007/12/18, Michael Bernagou <bl...@gmail.com>:
>
> 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
--
Michael Bernagou
Java Developper