Не удается подключиться к базе данных, используя Tomcat 5.5 и Hibernate - PullRequest
0 голосов
/ 08 декабря 2010

Хорошо, у меня странная проблема. Я использую Tomcat 5.5 с Hibernate. Я добавил ресурс в файл TOMCAT_HOME / conf / server.xml, а также в файл web.xml моего приложения.
Но я получаю сообщение об ошибке при использовании Hibernate для создания фабрики сессий следующим образом:

 configure.buildSessionFactory()

Но я получаю эту ошибку:

[ WARN]21:04:29 (SettingsFactory.java:buildSettings:144) - Could not obtain connection metadata

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

Моя конфигурация ресурса server.xml такая:

<Context path="/myApp" docBase="myApp" debug="0" reloadable="true" crossContext="true"> 
<Resource name="jdbc/myApp" auth="Container" type="javax.sql.DataSource" driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"  maxPoolSize="100"  minPoolSize="5"   
acquireIncrement="5"    
  user="username"  
password="1234"   
jdbcUrl="jdbc:sqlserver://192.168.1.108:1433;databaseName=myAppDB;autoReconnect=true" /> 
</Context>

Мой web.xml выглядит так:

    <resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jdbc/myApp</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth> 
</resource-ref> 

Это свойства Hibernate, которые я инициализирую в своем коде Java вручную:

hibernate.useJndi = "true"
hibernate.connection.datasource="java:/comp/env/jdbc/myApp"
hibernate.connection.jndi.datasource="jdbc/myApp"
hibernate.dialect="org.hibernate.dialect.SQLServerDialect"
hibernate.current_session_context_class="thread"

Так что мой hibernate.cfg.xml в основном пуст, поскольку настройка выполняется в коде Java и через JNDI.

Странная часть состоит в том, что если я изменю только server.xml и web.xml, чтобы использовать type = "com.mchange.v2.c3p0.ComboPooledDataSource" вместе с factory = "org.apache.naming.factory.BeanFactory" и оставляя все остальные вещи такими же, это работает !!!

Почему вышеуказанная конфигурация не работает? Я взял его из учебника Tomcat 5.5 JNDI. Мне нужно его использовать, потому что после того, как я получу вышеуказанную работу, я планирую расширить org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.

Спасибо.

1 Ответ

3 голосов
/ 08 декабря 2010

Ваш JAR драйвера базы данных находится в каталоге TOMCAT / lib?Это зависит от того, какой уровень создает и управляет пулом БД.Если вы переместите JAR, также обязательно удалите его из каталога WEB-INF / lib.Один или другой, а не оба.

...