Существуют различные способы настройки соединения для передачи данных JDB C для веб-приложения, размещенного на Tomcat.
JNDI-соединение в Tomcat
В своих заметках вы описываете, как вы используете запись Tomcat Resource
, добавленную в файл Tomcat context.xml
. Когда я использую этот подход, я также добавляю запись в файл web.xml
моего веб-приложения, которая ссылается на запись Resource
. Например:
<resource-ref>
<res-ref-name>treeanno/jdbc</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Обратите внимание, что имя ссылки на ресурс в моем файле web.xml
совпадает с именем Resource
.
Сделав это, я теперь могу обратиться к этому источнику данных в Java код моего приложения выглядит следующим образом:
// ABSOLUTELY NOT PRODUCTION-READY CODE! JUST FOR TESTING!
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
...
Context initialContext = new InitialContext();
Context context = (Context) initialContext.lookup("java:comp/env");
DataSource ds = (DataSource) context.lookup("treeanno/jdbc");
Что делает java:comp/env
? См. Здесь .
Но сначала проверьте свой URL
Вы можете самостоятельно убедиться, что у вас есть правильный URL-адрес соединения JDB C (и пользователь, и пароль), перед тем, как перейти к описанной выше конфигурации.
Никакие попытки не помогут, если у вас неправильный URL-адрес или источник данных недоступен и т. д. c.
Как проверить? Различные способы - например:
Использовать такой инструмент, как DBeaver . Для этого потребуется указать URL, пользователя и пароль для подключения к MySQL.
или написать отдельное автономное приложение Java (с основным методом) и базовый c . Соединение JDB C .
Или любым другим способом, который фокусируется только на деталях соединения MySQL, за исключением сложностей конфигурации Tomcat.
И, как указал @CHN: все это спорно, если вы не имеете * JDB C баночка файла mysql 1042
Как я уже сказал, это только один способ получить работу -.. но он работал для меня