thanks Viet, i also tried with your version. now it deploys perfectly but i get the same problem i have with david version.
interface org.hibernate.jdbc.ConnectionWrapper is not visible from class loader

full stack is
java.lang.IllegalArgumentException: interface org.hibernate.jdbc.ConnectionWrapper is not visible from class loader
	java.lang.reflect.Proxy.getProxyClass(Proxy.java:353)
	java.lang.reflect.Proxy.newProxyInstance(Proxy.java:581)
	org.hibernate.jdbc.BorrowedConnectionProxy.generateProxy(BorrowedConnectionProxy.java:67)
	org.hibernate.jdbc.ConnectionManager.borrowConnection(ConnectionManager.java:163)
	org.hibernate.jdbc.JDBCContext.borrowConnection(JDBCContext.java:111)
	org.hibernate.impl.SessionImpl.connection(SessionImpl.java:359)
	org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:456)
	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	$Proxy25.onApplicationEvent(Unknown Source)
	org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
	org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
	org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
	org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
	org.acegisecurity.intercept.AbstractSecurityInterceptor.publishEvent(AbstractSecurityInterceptor.java:447)
	org.acegisecurity.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:250)
	org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:104)
	org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)
	org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
	org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)

Viet Nguyen wrote:
Well I try your code Kevan, and I altered it some to get this:

package org.hibernate.transaction;

import java.util.Iterator;
import java.util.Properties;
import java.util.Set;

import javax.transaction.TransactionManager ;
import org.hibernate.HibernateException;
import org.hibernate.transaction.TransactionManagerLookup;

import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelRegistry;
import org.apache.geronimo.kernel.proxy.ProxyManager;

public class GeronimoTransactionManagerLookup
    implements TransactionManagerLookup { 

   public static final String UserTransactionName = "java:comp/UserTransaction";

   public TransactionManager getTransactionManager(Properties props) throws HibernateException {
       try {
           Kernel kernel = KernelRegistry.getSingleKernel();
           ProxyManager proxyManager = kernel.getProxyManager();
           AbstractNameQuery query = new AbstractNameQuery(TransactionManager.class.getName ());
           Set names = kernel.listGBeans(query);
           AbstractName name = null;
           for (Iterator it = names.iterator(); it.hasNext();)
               name = (AbstractName) it.next();
           Object transMg = (Object) proxyManager.createProxy(name, TransactionManager.class);
           return (TransactionManager)transMg;
       }catch (Exception e) {
           e.printStackTrace();
           System.out.println();
           throw new HibernateException("Geronimo Transaction Manager Lookup Failed", e);
       }
}

   public String getUserTransactionName() {
       return UserTransactionName;
   }
}

I tested it out and everything works on geronimo-jetty6-jee5-2.0.1

So I hope you can test it out Paolos.

Hope this works,
Viet Nguyen

Reply via email to