Подтвердить что ты не робот

Как настроить Tomcat для подключения к MySQL

Может ли кто-нибудь предоставить несколько сведений о том, как настроить Tomcat для доступа к MySQL?

  • В каком каталоге в Tomcat я помещаю mysql-connector-java-5.1.13-bin? Должен ли я разместить его под Tomcat 6.0\webapps\myapp\WEB-INF\lib?

  • Нужно ли добавлять конфигурацию в context.xml или server.xml?

  • Создать файл web.xml и разместить его под Tomcat 6.0\webapps\myapp\WEB-INF? Если да, то каково должно быть содержимое этого файла?

4b9b3361

Ответ 1

1: Где разместить mysql-connector-java-5.1.13-bin в каталоге Tomcat? Должен ли я разместить его под Tomcat 6.0\webapps\myapp\WEB-INF\lib?

Это зависит от того, где должны управляться соединения. Обычно вы хотите создать источник данных JNDI с объединенным соединением, чтобы улучшить производительность соединения. В этом случае Tomcat управляет соединениями и должен иметь доступ к драйверу JDBC. Затем вы должны удалить JAR файл в Tomcat/lib.

Но если вы делаете это основным способом, используя DriverManager#getConnection(), то на самом деле это не имеет значения, если вы его отбросите в Tomcat/lib или YourApp/WEB-INF/lib. Тем не менее вам необходимо понять, что тот, который находится в Tomcat/lib, будет применяться для всех развернутых webapps и что тот, который находится в YourApp/WEB-INF/lib, переопределит значение в Tomcat/lib только для конкретного веб-приложения.


2: Мне нужно confirgure context.xml или server.xml файлы?

Это зависит от того, где должны управляться соединения. При использовании источника данных JNDI его необходимо сконфигурировать с помощью YourApp/META-INF/context.xml следующим образом (просто создайте файл, если он не существует):

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource
        name="jdbc/yourdb" type="javax.sql.DataSource"
        maxActive="100" maxIdle="30" maxWait="10000" 
        url="jdbc:mysql://localhost:3306/yourdb"
        driverClassName="com.mysql.jdbc.Driver"
        username="yourname" password="yourpass"
    />
</Context>

и YourApp/WEB-INF/web.xml следующим образом:

<resource-env-ref>
    <resource-env-ref-name>jdbc/yourdb</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>

Если вы делаете это основным способом DriverManager, то все зависит от вас. Hardcoded, файл свойств, файл XML и т.д. Вы должны справиться с этим сами. Tomcat не будет (и не может) ничего полезного для вас.

Отмечается, что YourApp/META-INF/context.xml специфичен для Tomcat и клонов. Каждый сервер servnetcontainer/appserver имеет собственный способ определения ресурсов JNDI. Например, в Glassfish вы хотели бы сделать это через веб-интерфейс администратора.


3: Должен ли я писать файл web.xml и его нужно разместить под Tomcat 6.0\webapps\myapp\WEB-INF? Если да, то каково должно быть содержимое файла?

Вы всегда должны поставлять его. Это не только для настройки ресурсов, но и для определения сервлетов, фильтров, прослушивателей и таких обязательных материалов для запуска вашего webapp. Этот файл является частью стандартного API сервлета.

См. также:

Ответ 2

Ответ на ваши вопросы:

  • Один из вариантов - это то, что вы упомянули: поместите драйвер в каталог WEB-INF/lib в ваш WAR файл. Другой будет в директории $TOMCAT_HOME/lib. Преимущество последнего заключается в том, что вам не нужно копировать соединительную банку в каждый отдельный проект, который вы развертываете на этом сервере приложений. Недостатком является то, что вам нужно запомнить, чтобы поставить файл jar на место перед развертыванием вашего приложения на другом сервере приложений.
  • Если вам нужно что-то изменить в конфигурации по умолчанию, да. В противном случае существуют файлы context.xml и server.xml с параметрами по умолчанию, поставляемыми с установками tomcat.
  • Ваше приложение (WAR) web.xml должно находиться в каталоге WEB-INF в вашем файле развертывания. Вы можете просмотреть принятый контент в этом файле в спецификации контейнера сервлетов Java EE. Обычно вы размещаете сервлет, фильтруете и соответствующие им сопоставления в этом файле.