Results 1 to 3 of 3

Thread: UnsupportedOperationException: The user must supply a JDBC connection

  1. #1

    Default UnsupportedOperationException: The user must supply a JDBC connection

    Hi,

    i need help with the following Exception and Enviroment:

    Exception:
    Code:
    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.UnsupportedOperationException: The user must supply a JDBC connection
    	org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:596)
    	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
    	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
    	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
    	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    	$Proxy98.createCustomer(Unknown Source)
    	com.speterit.test.HomeController.home(HomeController.java:30)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:616)
    	org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
    	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
    	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
    	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
    	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
    	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    java.lang.UnsupportedOperationException: The user must supply a JDBC connection
    	org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)
    	org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
    	org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
    	org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
    	org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
    	org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
    	org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:555)
    	org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
    	org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
    	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
    	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    	$Proxy98.createCustomer(Unknown Source)
    	com.speterit.test.HomeController.home(HomeController.java:30)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:616)
    	org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
    	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
    	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
    	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
    	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
    	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    servlet-context.xml:
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans:beans xmlns="http://www.springframework.org/schema/mvc"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    
    	<!-- DispatcherServlet Context: defines this servlet's request-processing 
    		infrastructure -->
    
    	<!-- Enables the Spring MVC @Controller programming model -->
    	<annotation-driven />
    
    	<!-- Handles HTTP GET requests for /resources/** by efficiently serving 
    		up static resources in the ${webappRoot}/resources directory -->
    	<resources mapping="/resources/**" location="/resources/" />
    
    	<!-- Resolves views selected for rendering by @Controllers to .jsp resources 
    		in the /WEB-INF/views directory -->
    	<beans:bean
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<beans:property name="prefix" value="/WEB-INF/views/" />
    		<beans:property name="suffix" value=".jsp" />
    	</beans:bean>
    
    	<!-- Data Source -->
    	<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    		destroy-method="close">
    		<beans:property name="driverClassName" value="org.postgresql.Driver" />
    		<beans:property name="url" value="jdbc:postgresql://localhost/test" />
    		<beans:property name="username" value="speter" />
    		<beans:property name="password" value="#password#" />
    	</beans:bean>
    
    	<!-- Hibernate -->
    	<beans:bean id="hibernateSessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<beans:property name="configLocation" value="classpath:hibernate.cfg.xml" />
    		<beans:property name="configurationClass"
    			value="org.hibernate.cfg.AnnotationConfiguration" />
    		<beans:property name="hibernateProperties">
    			<beans:props>
    				<beans:prop key="hibernate.show_sql">true</beans:prop>
    				<beans:prop key="hibernate.hbm2ddl.auto">create</beans:prop>
    				<beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</beans:prop>
    				<beans:prop key="hibernate.c3p0.min_size">5</beans:prop>
    				<beans:prop key="hibernate.c3p0.max_size">20</beans:prop>
    				<beans:prop key="hibernate.c3p0.timeout">1800</beans:prop>
    				<beans:prop key="hibernate.c3p0.max_statements">50</beans:prop>
    			</beans:props>
    		</beans:property>
    	</beans:bean>
    
    	<context:component-scan base-package="com.speterit.test" />
    
    	<tx:annotation-driven transaction-manager="transactionManager" />
    	<beans:bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<beans:property name="sessionFactory" ref="hibernateSessionFactory" />
    	</beans:bean>
    </beans:beans>
    HomeController.java
    Code:
    package com.speterit.test;
    
    import java.util.Locale;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    /**
     * Handles requests for the application home page.
     */
    @Controller
    public class HomeController
    {	
    	@Autowired(required = true)
    	CustomerService customerService;
    	
    	/**
    	 * Simply selects the home view to render by returning its name.
    	 */
    	@RequestMapping(value = "/", method = RequestMethod.GET)
    	public String home(Locale locale, Model model)
    	{	
    		Customer customer = new Customer();
    		customer.setEmail("stevenpeter91@googlemail.com");
    		customer.setPassword("TestPassword");
    		
    		customerService.createCustomer(customer);
    		
    		return "home";
    	}
    
    }

  2. #2

    Default

    Customer.java
    Code:
    package com.speterit.test;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "customer")
    public class Customer
    {
    	public String email, password;
    
    	@Id
    	@Column(name = "email", length = 20)
    	public String getEmail()
    	{
    		return email;
    	}
    
    	public void setEmail(String email)
    	{
    		this.email = email;
    	}
    
    	@Column(name = "password", length = 20)
    	public String getPassword()
    	{
    		return password;
    	}
    
    	public void setPassword(String password)
    	{
    		this.password = password;
    	}
    }
    HibernateCustomerDao:
    Code:
    package com.speterit.test;
    
    import org.hibernate.SessionFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public class HibernateCustomerDao implements CustomerDao
    {
    	@Autowired(required = true)
    	private SessionFactory sessionFactory;
    
    	@Override
    	public Customer findByEmail(String email)
    	{
    		return (Customer) this.sessionFactory.getCurrentSession()
    				.createQuery("from Customer customer where customer.email = ?")
    				.setParameter(0, email).uniqueResult();
    	}
    
    	@Override
    	public Customer persistOrMerge(Customer customer)
    	{
    		return (Customer) this.sessionFactory.getCurrentSession().merge(
    				customer);
    	}
    
    }
    HibernateCustomerService:
    Code:
    package com.speterit.test;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.transaction.annotation.Transactional;
    
    @Service
    public class HibernateCustomerService implements CustomerService
    {
    	@Autowired(required = true)
    	private CustomerDao customerDao;
    
    	@Override
    	@Transactional
    	public Customer retrieveCustomer(String email)
    	{
    		return this.customerDao.findByEmail(email);
    	}
    
    	@Override
    	@Transactional(readOnly = true)
    	public Customer createCustomer(Customer customer)
    	{
    		return this.customerDao.persistOrMerge(customer);
    	}
    }
    If you need more feel free to let me know it

  3. #3

    Default

    Ok i found the mistake at the hibernate.cfg.xml postgresql instead of postgres

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •