2016-05-24 12 views
0

私はSpring + hibernateに新しくなりました。私はSpring + hibernate + postgresqlデータベースを使用しています。 eclipseを通じてhibernate.cfg.xmlを作成しました。私は接続URL、接続名、パスワード、ドライバクラスを与えました。次のことは、servlet.context.xmlのsessionFactory設定に行きます。ServletのSessionFactoryコンフィグレーション-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 --> 

が、それでも今のSessionFactoryをautowiredことができませんでした。他に何かが足りないのですか?

+0

例外は何ですか? –

答えて

0

sessionFactory Beanにhibernate.cfg.xmlの場所がありません。このようなhibernate configの場所を指定してください。

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

はまた、それは代わりにあなたがデータソースBeanを作成し、このようなセッションファクトリにそのBeanを注入することができ、hibernate.cfg.xmlファイルに等DBのユーザ名、パスワード、URL、ドライバを供給するために、より良い選択ではありません。

<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

今でも私は「org.springframework.beans.factory.BeanCreationExceptionによって引き起こされています:ServletContextリソース[/WEB-INF/spring/appServlet/servlet-context.xml]で定義された 'sessionFactory'という名前のBeanを作成中にエラーが発生しました:呼び出し(Ljava/lang/String; I) "@prakash – user5863037

+0

あなたが使用しているhibernate jarsのバージョン –

+0

jboss- logging.jarをクラスパス/ lib –

関連する問題