Ответ 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 сервлета.
См. также:
- Можно ли использовать статический экземпляр java.sql.Connection в многопоточной системе?
- Как подключиться к базе данных JDBC/источнику данных в приложении на основе сервлета?
- Где мне разместить драйвер JDBC для пула соединений Tomcat?
- Учебное пособие DAO - базовое учебное пособие по JDBC/DAO, предназначенное для Tomcat/JSP/Servlet