Настройка свойств базы данных для Tomcat Webapp

Я установил пример приложения в Tomcat, но не могу установить соединение с базой данных. Это стандартный пакет WAR, написанный на платформе Spring и использующий базу данных MySQL.

Приложение представляет собой Granny Address Book из http://www.cumulogic.com/downloads/sample- приложения / .

Я развернул его под tomcat / webapps / (Tomcat 7.0.42 с MySQL 5.1.73, работающим на том же хосте.)

  • Имя БД MySQL: grannydb
  • JNDI Имя: MySqlGBDS

Я не могу найти, где разместить параметры подключения к базе данных, так как в нем нет обычного файла database.properties . Единственная ссылка на настройки базы данных находится в granny.xml :

<database>
  <engine>MySQL-5.5.27</engine>
  <no-of-nodes>1</no-of-nodes>
  <storage>10</storage>
  <config>
    <master-username>demo</master-username>
    <master-password>demodemo</master-password>
    <port>3306</port>
    <character-set>UTF-8</character-set>
  </config>       <external-host></external-host>
</database>

Но этот файл не упакован внутри веб-приложения (он поставляется отдельно), и ему не хватает имени хоста базы данных.

Я попытался разместить granny.xml внутри веб-приложения в разделе WEB-INF / classes / META-INF / spring / , но не удается подключиться к базе данных.

Текущее поведение - это веб-приложение запускается, но catalina.out предупреждает:

 WARN : org.hibernate.cfg.SettingsFactory - Could not obtain connection
 to query metadata org.apache.tomcat.dbcp.dbcp.SQLNestedException:
 Cannot create JDBC driver of class '' for connect URL 'null'

Где бабушка. Чего еще не хватает?

(Да, я уже создал базу данных и пользователя в MySQL. Приложение не создает таблицы.)

0
задан 6 August 2019 в 18:54
1 ответ

Если он использует JNDI, вам необходимо настроить соединение с базой данных либо в server.xml , либо в context.xml .

Для администратора это лучше для установки соединения с базой данных в server.xml , в противном случае вам придется распаковывать и упаковывать WAR-файл перед каждым развертыванием.

Откройте server.xml. Должен быть раздел под названием GlobalNamingResources . Здесь вы добавляете подключение к базе данных.

<Resource auth="Container" 
          driverClassName="com.mysql.jdbc.Driver" 
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"  
          validationQuery="/* ping */"
          testOnBorrow="true"
          name="jdbc/MySqlGBDS" 
          username="<username>"
          password="<password>" 
          type="javax.sql.DataSource" 
          url="jdbc:mysql://<ipaddress>/grannydb" /> 

Надеюсь, это поможет.

2
ответ дан 4 December 2019 в 13:44

Теги

Похожие вопросы