Может ли кто-нибудь предоставить несколько подробностей о том, как настроить Tomcat для доступа к MySQL?
В каком каталоге в Tomcat я размещаю mysql-connector-java -5.1.13 бен
? Должен ли я поместить его под Tomcat 6. 0 \ webapps \ myapp \ WEB-INF \ lib
?
Нужно ли добавлять конфигурацию в context.xml
или server.xml
?
Должен ли я создать файл web.xml
и поместить его в папку Tomcat 6.0 \ webapps \ myapp \ WEB-INF
? Если да, то как должно выглядеть содержимое этого файла?
Ответ на ваши вопросы:
WEB-INF / lib
в вашем файле WAR. Другой будет в каталоге $ TOMCAT_HOME / lib
. Преимущество последнего заключается в том, что вам не нужно копировать jar-файл соединителя в каждый отдельный проект, который вы развертываете на этом сервере приложений. Недостатком является то, что вам нужно будет запомнить , чтобы поместить файл jar на место перед развертыванием вашего приложения на другом сервере приложений. WEB-INF
в вашем файле развертывания. Вы можете посмотреть принятое содержимое этого файла в спецификации контейнера сервлетов Java EE. Обычно вы помещаете в этот файл свой сервлет, фильтр и соответствующие им сопоставления. 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 сервлетов.