2012-05-21 5 views
12

Ich bekomme einen Fehler in meiner Anwendung, aber ich bin mir nicht sicher, was es bedeutet. Ich habe ein paar Beispielcode geschrieben. Das ist der Fehler, den ich bekommen:Spring Source Suite Spring3 + Hibernate4 + Maven 3 + MySQL 5

> SEVERE: Exception sending context initialized event to listener 
> instance of class 
> org.springframework.web.context.ContextLoaderListener 
> org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'transactionManager' defined in ServletContext 
> resource [/WEB-INF/spring/root-context.xml]: Invocation of init method 
> failed; nested exception is 
> org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to 
> requested type [javax.sql.DataSource]  at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
> at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
> at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
> at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 
> at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
> at 
> org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384) 
> at 
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) 
> at 
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
> at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
> at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
> at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
> at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
> at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
> at java.lang.Thread.run(Thread.java:722) Caused by: 
> org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to 
> requested type [javax.sql.DataSource]  at 
> org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.unwrap(DriverManagerConnectionProviderImpl.java:91) 
> at 
> org.springframework.orm.hibernate4.SessionFactoryUtils.getDataSource(SessionFactoryUtils.java:101) 
> at 
> org.springframework.orm.hibernate4.HibernateTransactionManager.afterPropertiesSet(HibernateTransactionManager.java:264) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
> ... 22 more 
> 
> ERROR: org.springframework.web.context.ContextLoader - Context 
> initialization failed 
> org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'transactionManager' defined in ServletContext 
> resource [/WEB-INF/spring/root-context.xml]: Invocation of init method 
> failed; nested exception is 
> org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to 
> requested type [javax.sql.DataSource]  at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) 
> at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
> at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
> at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 
> at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) 
> at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) 
> at 
> org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384) 
> at 
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) 
> at 
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
> at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
> at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
> at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
> at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
> at 
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
> at java.lang.Thread.run(Thread.java:722) Caused by: 
> org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to 
> requested type [javax.sql.DataSource]  at 
> org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.unwrap(DriverManagerConnectionProviderImpl.java:91) 
> at 
> org.springframework.orm.hibernate4.SessionFactoryUtils.getDataSource(SessionFactoryUtils.java:101) 
> at 
> org.springframework.orm.hibernate4.HibernateTransactionManager.afterPropertiesSet(HibernateTransactionManager.java:264) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) 
> at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) 
> ... 22 more 

Das ist mein pom-Datei:

<modelVersion>4.0.0</modelVersion> 
<groupId>com.reservosity</groupId> 
<artifactId>component</artifactId> 
<name>Reservosity</name> 
<packaging>war</packaging> 
<version>1.0.0-BUILD-SNAPSHOT</version> 
<properties> 
    <java-version>1.6</java-version> 
    <org.springframework-version>3.1.0.RELEASE</org.springframework-version> 
    <org.aspectj-version>1.6.9</org.aspectj-version> 
    <org.slf4j-version>1.5.10</org.slf4j-version> 
</properties> 
<dependencies> 
    <!-- Spring --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework-version}</version> 
     <exclusions> 
      <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${org.springframework-version}</version> 
    </dependency> 

    <!-- AspectJ --> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${org.slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>jcl-over-slf4j</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${org.slf4j-version}</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.15</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.mail</groupId> 
       <artifactId>mail</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>runtime</scope> 
    </dependency> 

    <!-- @Inject --> 
    <dependency> 
     <groupId>javax.inject</groupId> 
     <artifactId>javax.inject</artifactId> 
     <version>1</version> 
    </dependency> 

    <!-- Servlet --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.1.3.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.1.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>3.1.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>2.2.2</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.common</groupId> 
     <artifactId>hibernate-commons-annotations</artifactId> 
     <version>4.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.20</version> 
    </dependency> 
    <dependency> 
     <groupId>org.javassist</groupId> 
     <artifactId>javassist</artifactId> 
     <version>3.15.0-GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.7</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.9</version> 
      <configuration> 
       <additionalProjectnatures> 
        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
       </additionalProjectnatures> 
       <additionalBuildcommands> 
        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> 
       </additionalBuildcommands> 
       <downloadSources>true</downloadSources> 
       <downloadJavadocs>true</downloadJavadocs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArgument>-Xlint:all</compilerArgument> 
       <showWarnings>true</showWarnings> 
       <showDeprecation>true</showDeprecation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <mainClass>org.test.int1.Main</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Der servet-Kontext:

<!-- 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> 

<context:component-scan base-package="com.reservosity.component.controller" /> 

Die Wurzel- context.xml:

<!-- Root Context: defines shared resources visible to all other web components --> 


<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="configLocation"> 
     <value>classpath:hibernate.cfg.xml</value> 
    </property> 
</bean> 
<tx:annotation-driven transaction-manager="transactionManager" /> 

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

Die hibernate.cfg.xml:

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/******</property> 
    <property name="hibernate.connection.username">***</property> 
    <property name="hibernate.connection.password">***</property> 
    <property name="hibernate.connection.pool_size">10</property> 
    <property name="show_sql">true</property> 
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.current_session_context_class">thread</property> 
    <mapping class="com.company.component.domain.Company" /> 
</session-factory> 

Wenn ich die Bohne transaction entfernen, es funktioniert gut, aber wenn ich es wieder hinzufügen, erhalte ich dieser schmutzige Fehler. Nicht sicher warum.

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

Ich bin neu im Frühling Winterschlaf und könnte wirklich mit etwas Hilfe tun! Bibliothek lib Ordner zu einem Projekt

Dank

Andrew

+0

Konnte das Problem behoben werden? Ich habe genau das gleiche Problem – jonney

Antwort

30

Ich habe genau das gleiche Problem. KyelJmD schlägt here vor, dass es ein fehlendes Verbindungspooling gibt, und es scheint, dass er Recht hat, aber er hat keine Lösung gepostet.

Also habe ich einige Zeit verbracht und endlich funktioniert es.Um dieses Problem zu lösen, sollten Sie zwei Dinge tun:

  1. fügen Sie diese Zeilen in hibernate.cfg.xml Datei (es ist möglich, dass Sie nicht alle es brauchen):

    <property name="hibernate.c3p0.min_size">5</property> 
    <property name="hibernate.c3p0.max_size">20</property> 
    <property name="hibernate.c3p0.timeout">300</property> 
    <property name="hibernate.c3p0.max_statements">50</property> 
    <property name="hibernate.c3p0.idle_test_period">3000</property> 
    
  2. hinzufügen diese Abhängigkeiten in pom.xml:

    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-c3p0</artifactId> 
        <version>4.1.9.Final</version> 
    </dependency> 
    
    <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-ehcache</artifactId> 
        <version>4.1.9.Final</version> 
    </dependency> 
    

Ohne maven Abhängigkeit Hibernate einfach ignoriert leise C3P0 Konfiguration.

Mit der obigen Konfiguration bekomme ich keine UnknownUnwrapTypeException Ausnahme, und es scheint, dass es jetzt gut funktioniert.

Mein Setup: Frühling 3.2.1, Hibernate 4.1.9, Tomcat 7.0.35.

Haftungsausschluss: wie in Frage this angegeben, sollten Sie lieber nicht hibernate.cfg.xml Datei verwenden. Verwenden Sie stattdessen dataSource Bean, weil Sie es beispielsweise später für JdbcTemplate verwenden können.

EDIT:

Es ist eine Weile gewesen, da ich diese Frage beantwortet. Es schien richtig, aber ich mag es nie, weil es eine Vermutung war, die wir wirklich vermeiden sollten.

Also, weil ich das interresting gefunden habe und ich konnte nichts in Hibernate 4.1 docs finden, habe ich versucht, meine und andere Kommentatoren "rate" zu beweisen.

Hier ist eine Schritt-für-Schritt-Anleitung, wahrscheinlich auch nützlich, um andere seltsame Probleme in anderen Bibliotheken zu lösen. Es stellte sich heraus, dass es wirklich einfach war, was vor sich geht.

  1. Erstellen Sie ein Maven-Projekt (oder verwenden Sie ein vorhandenes), fügen Sie Hibernate zur Abhängigkeit hinzu (hibernate-entitymanager, habe ich diesmal Version 4.1.7 verwendet). Importieren Sie es in die IDE, die automatisch Quellcode anhängen kann (Ich habe Intellij verwendet)
  2. Suchen Sie in Stack Trace die Klasse, in der die Ausnahme (UnknownUnwrapTypeException) ausgelöst wurde (DriverManagerConnectionProviderImpl) und navigieren Sie dort (STRG-N und geben Sie den Klassennamen ein) "Quellen herunterladen".
  3. Hier finden Sie Verwendungen von DriverManagerConnectionProviderImpl (ALT + F7)
  4. Voila! Stellt sich heraus, es gibt nur eine Verwendung von DriverManagerConnectionProviderImpl - es ist eine initiateService(...) Methode in ConnectionProviderInitiator, die - mehr oder weniger - versucht ein paar ConnectionProvider Implementierungen, bevor es Fallbacks zu DriverManagerConnectionProviderImpl, die in unserem Fall nicht funktioniert und wirft UnknownUnwrapTypeException.

Von Hibernate ConnectionProviderInitiator.java:

 ConnectionProvider connectionProvider = null; 
    String providerClassName = getConfiguredConnectionProviderName(configurationValues); 
    if (providerClassName != null) { 
     connectionProvider = instantiateExplicitConnectionProvider(providerClassName, classLoaderService); 
    } 
    else if (configurationValues.get(Environment.DATASOURCE) != null) { 
     connectionProvider = new DatasourceConnectionProviderImpl(); 
    } 

    if (connectionProvider == null) { 
     if (c3p0ConfigDefined(configurationValues) && c3p0ProviderPresent(classLoaderService)) { 
      connectionProvider = instantiateExplicitConnectionProvider(C3P0_PROVIDER_CLASS_NAME, 
        classLoaderService 
      ); 
     } 
    } 

    if (connectionProvider == null) { 
     if (proxoolConfigDefined(configurationValues) && proxoolProviderPresent(classLoaderService)) { 
      connectionProvider = instantiateExplicitConnectionProvider(PROXOOL_PROVIDER_CLASS_NAME, 
        classLoaderService 
      ); 
     } 
    } 

    if (connectionProvider == null) { 
     if (configurationValues.get(Environment.URL) != null) { 
      connectionProvider = new DriverManagerConnectionProviderImpl(); 
     } 
    } 

    if (connectionProvider == null) { 
     LOG.noAppropriateConnectionProvider(); 
     connectionProvider = new UserSuppliedConnectionProviderImpl(); 
    } 

Der Code zeigt grob, dass:

  1. Wenn Environment.DATASOURCE (hibernate.connection.Datenquelle) eingestellt, dann wird DatasourceConnectionProviderImpl verwendet;
  2. Wenn es c3p0 vorhanden, dann C3P0 Provider instanziiert
  3. Einige andere Anbieter geprüft (PROXOOL_PROVIDER_CLASS_NAME)
  4. Dann, wenn Environment.URL (hibernate.connection.url) vorhanden ist, wir DriverManagerConnectionProviderImpl verwenden.

Und das ist es. Dies erklärt, warum, wenn wir C3P0 als Maven Dependency hinzufügen oder DataSource definieren (wie Michael ako Tecourt sagt im Kommentar unten) das Problem löst.

Eine andere Frage ist, warum DriverManagerConnectionProviderImpl UnknownUnwrapTypeException wirft - ob es ein Fehler ist oder nicht - jedenfalls sehe ich keine Änderungen in Code in Hibernate 4.2.0 und sogar 4.3.0.Beta.

+0

Ich benutze Frühling 3.2 Hibernate 4 auf meinem Projekt mit @Configuraton anstelle von XML, und das war eine große Hilfe. –

+1

Präzision: Ich habe gerade herausgefunden, dass du C3P0 nicht wirklich brauchst ... in Wirklichkeit sieht es wie ein Bug aus. Wenn Sie beginnen, Hibernate-Eigenschaften zu definieren (wie "Dialekt" usw.), müssen Sie explizit c3p0-bezogene Eigenschaften definieren, aber wenn Sie nur eine Datenquelle und Entitätsklassen definieren, funktioniert alles perfekt !! –

+1

+1 Unglaublich, wie Menschen diese Lösungen selbst finden;) –

0

try umfassen Spring und Hibernate. Ich hoffe, das hilft.

0

This article schlägt vor, dass Sie keine Datenquelle in Ihrer Hibernate-Konfigurationsdatei definiert haben.

+1

Danke für die schnelle Antwort, aber ich hatte bereits eine Datenquelle in meinem Hibernate.cfg.xml – user1408682

1

Gerade bei der Frage suchen, um es aus diesem Code kommt ist:

if (ConnectionProvider.class.equals(unwrapType) || 
       DriverManagerConnectionProviderImpl.class.isAssignableFrom(unwrapType)) { 
      return (T) this; 
     } 
     else { 
      throw new UnknownUnwrapTypeException(unwrapType); 
     } 

wo unwrapType javax.sql.DataSource ist.

Während ich nicht genau erklären kann, was es über Ihre Konfiguration ist, die das verursacht, kann ich eine Reparatur vorschlagen.

Definieren Sie eine DriverManagerDataSource Bean in Ihrem Feder Anwendungskontext und stellen Sie dies als eine Eigenschaft zu Ihrer LocalSessionFactoryBean. Stellen Sie sicher, dass Sie die Datenquellenkonfiguration aus Ihrer Hibernate-Konfigurationsdatei entfernen.