Как настроить Tomcat для подключения с MySQL - PullRequest
18 голосов
/ 15 августа 2010

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

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

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

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

Ответы [ 2 ]

30 голосов
/ 15 августа 2010

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 будет применяться для всех развернутых веб-приложений, и что тот, что в YourApp/WEB-INF/lib, переопределит тот, который в Tomcat/lib, только для определенного веб-приложения.


2: Нужно ли подтверждать 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 способом, то все зависит от вас.Закодировано, файл свойств, файл XML и так далее.Вы должны сами управлять этим.Tomcat не будет (и не сможет) сделать что-нибудь полезное для вас.

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


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

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

См. Также:

0 голосов
/ 15 августа 2010

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

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