2016-05-24 5 views
0

Ich bin neu bei Spring + Hibernate.Ich benutze Spring + Hibernate + Postgresql-Datenbank. Ich habe hibernate.cfg.xml durch Eclipse erstellt. Ich habe Verbindungs-URL, Verbindungsname, Passwort, Treiber-Klasse angegeben. Als nächstes gehe ich zur SessionFactory-Konfiguration in servlet.context.xml.SessionFactory-Konfiguration in Servlet -context.xml

<?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:tx="http://www.springframework.org/schema/tx" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.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> 

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

<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <!--<property name="schemaUpdate" value="true" />--> 
    <beans:property name="hibernateProperties"> 
     <beans:props> 
      <beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</beans:prop> 
     </beans:props> 
    </beans:property> 
</beans:bean> 

<!-- Hibernate Transaction Manager --> 
<beans:bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <beans:property name="sessionFactory" ref="sessionFactory"/> 
</beans:bean> 

<!-- Activates annotation based transaction management --> 

konnte aber noch nicht jetzt autowired session. Fehle ich noch etwas?

+0

Was die Ausnahmen erhalten Sie ?? –

Antwort

0

Sie fehlen den Speicherort hibernate.cfg.xml in Ihrer sessionFactory-Bean, stellen Sie den Speicherort der Hibernate-Konfiguration wie folgt bereit.

<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
<!--<property name="schemaUpdate" value="true" />--> 
    <beans:property name="configLocation" value="/WEB-INF/hibernate.cfg.xml" /> 
    <beans:property name="hibernateProperties"> 
     <beans:props> 
      <beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</beans:prop> 
     </beans:props> 
    </beans:property> 
</beans:bean> 

Auch ist es keine bessere Wahl db Benutzername, Passwort, URL, Treiber usw. in hibernate.cfg.xml Datei zu liefern, Sie können stattdessen eine Datenquelle Bean erstellen und die Bohne zu Sitzung Fabrik wie diese injizieren:

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <beans:property name="driverClassName" value="${db.driver}" /> 
    <beans:property name="url" value="${db.jdbcurl}" /> 
    <beans:property name="username" value="${db.username}" /> 
    <beans:property name="password" value="${db.password}" /> 
</beans:bean> 

<beans:bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
<!--<property name="schemaUpdate" value="true" />--> 
    <beans:property name="dataSource" ref="dataSource"></property> 
    <beans:property name="configLocation" value="/WEB-INF/hibernate.cfg.xml" /> 
    <beans:property name="hibernateProperties"> 
     <beans:props> 
      <beans:prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</beans:prop> 
     </beans:props> 
    </beans:property> 
</beans:bean> 
+0

Noch immer bekomme ich "verursacht durch: org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen Bean mit Namen 'sessionFactory' definiert in ServletContext-Ressource [/WEB-INF/spring/appServlet/servlet-context.xml]: Aufruf init-Methode fehlgeschlagen, geschachtelte Ausnahme ist java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf (Ljava/lang/String; I) "@prakash – user5863037

+0

welche Version von Hibernate-Jars verwenden Sie –

+0

haben Sie jboss- logging.jar an Ihrem Classpath/lib –