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

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

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

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

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

18
задан BalusC 5 December 2015 в 09:29
поделиться

2 ответа

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

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

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 и клонов. Каждый контейнер сервлетов / сервер приложений имеет свой собственный способ определения ресурсов JNDI. Например, в Glassfish вы хотели бы сделать это через веб-интерфейс администратора.


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

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

См. Также:

30
ответ дан 30 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

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